上传几个文件

时间:2011-11-14 07:09:26

标签: ruby-on-rails

例如我有一个模型 - 凯斯。此case不能包含任何一张或多张图片,也不能包含任何一个或多个文档。用户应该可以在这个“案例”中添加一些图片。每种情况下此文件的数量未知。据我所知,我应该创建一个带有case_id的新模型,它将存储这些文件 - 例如'Picture'。据我所知,paperclip gem不适用于此任务,因为它适用于确切数量的文件。在这种情况下,它是未知的。 此外,还有另一个问题 - 在创建新案例时,这种情况在数据库中不存在,我不知道如何在缺少案例时创建新图片(其id =空值) 任何人都可以给我一些想法 - 关于更好的解决方法吗?哪些插件或宝石应该使用或给我一些文章的参考。 谢谢!

1 个答案:

答案 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