例如,我以相同的形式上传了两个文件A和B,paperclip会在数据库中插入两个条目。
有没有办法强制回形针只创建一个数据库条目并插入两个不同的字段(例如file_name_A,file_name_B,file_size_A,file_size_B ....)?
更新:
在 submission.rb:
中attr_accessible :id, :email, :uploads_attributes
has_many :uploads, :dependent => :destroy
accepts_nested_attributes_for :uploads, :allow_destroy => true
在我的 upload.rb :
中belongs_to :submission
attr_accessible :id, :user_id, :package_a_file_name, :package_a_file_size, :package_b_file_name, :package_b_file_size, :updated_at
has_attached_file :package
答案 0 :(得分:1)
模型的设置方式没有任何问题。如果您希望更改要求,则可以在单独的模型中存储多个上传内容,从而更容易维护轨道。
您只在upload.rb中指定了一个附加文件,这就是为每次上传插入单独条目的原因。指定随机attr_accessibles
将不会执行任何操作,这些字段甚至不存在。
您可以完全删除上传模式,并直接将上传内容存储在提交内容中:
<强> submission.rb 强>
has_attached_file :package_a
has_attached_file :packabe_b
这会将上传内容存储在与提交相关联的单行中。这不可扩展。
我不会像上面那样以不可扩展的方式在您的上传模型中存储多个上传内容,从OOP的角度来看这是不合逻辑的。
总而言之,我认为你现在设置它的方式是最好的方法。