例如我有一个模型 - 凯斯。此case
不能包含任何一张或多张图片,也不能包含任何一个或多个文档。用户应该可以在这个“案例”中添加一些图片。每种情况下此文件的数量未知。据我所知,我应该创建一个带有case_id的新模型,它将存储这些文件 - 例如'Picture'。据我所知,paperclip
gem不适用于此任务,因为它适用于确切数量的文件。在这种情况下,它是未知的。
此外,还有另一个问题 - 在创建新案例时,这种情况在数据库中不存在,我不知道如何在缺少案例时创建新图片(其id =空值)
任何人都可以给我一些想法 - 关于更好的解决方法吗?哪些插件或宝石应该使用或给我一些文章的参考。
谢谢!
答案 0 :(得分:2)
恕我直言,使用多态并形成嵌套属性。
class Case < ActiveRecord::Base
has_many :pictures, :as => :imageable
accepts_nested_attributes_for :pictures
end
Picture < ActiveRecord::Base
has_many :pictures
belongs_to :imageable, :polymorphic => true
end
阅读:
http://guides.rubyonrails.org/association_basics.html#polymorphic-associations
http://api.rubyonrails.org/classes/ActiveRecord/NestedAttributes/ClassMethods.html