Rails 用户体验与具有载波和嵌套形式的文件结构 - 需要对设计决策进行输入

Rails user experience vs file structure with carrierwave and nested forms - Need input on design decisions

我有 2 个模型,产品和照片模型如下:

product.rb

class Product < ActiveRecord::Base
  has_many :photos, dependent: :destroy
  accepts_nested_attributes_for :photos, allow_destroy: true
end

photo.rb

class Photo < ActiveRecord::Base
  belongs_to :product
  validates :album, presence: true
  mount_uploader :image, PhotoUploader
end

我正在使用 carrierwave 和 s3 进行文件上传。

我可以嵌套表单,以便用户可以在创建产品的同时上传照片。在这种情况下,照片模型先于产品模型保存,这导致照片文件路径类似于:

uploads/photos/images/photo_id

但是文件结构如果是这样的话会更有意义:

uploads/product/id/photos/

然而,product.id在创建照片时为零。

考虑到这一点,有几个问题:

我的路径如 uploads/products/id/photos/ 的解决方案是配置 PhotoUploader 如下:

  def store_dir
    "uploads/products/#{model.product_id}/images"
  end

请注意,在调用 store_dir 方法时,没有任何验证会导致 product_id 不存在。