0

例如,我以相同的形式上传了两个文件 A 和 B,回形针会在数据库中插入两个条目。

有没有办法强制回形针只创建一个数据库条目并插入两个不同的字段(例如 file_name_A、file_name_B、file_size_A、file_size_B ......)?

更新

在我的submit.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
4

1 回答 1

1

您的模型设置方式没有任何问题。如果您希望更改要求,将多个上传存储在单独的模型中可以更轻松地保持跟踪。

您只在upload.rb 中指定了一个附加文件,这就是它为每次上传插入一个单独条目的原因。指定 randomattr_accessibles不会做任何事情,这些字段甚至不存在。

可以完全删除上传模型,并将上传内容直接存储在提交中:

提交.rb

has_attached_file :package_a
has_attached_file :packabe_b

这会将上传存储在与提交相关联的单行中。这是不可扩展的。

我不会以上述不可扩展的方式在您的上传模型中存储多个上传,从 OOP 的角度来看,这没有逻辑意义。

总而言之,我认为您现在设置它的方式是最好的方法。

于 2013-02-14T19:15:28.470 回答