mom*_*enr 2 ruby-on-rails paperclip ruby-on-rails-4
我有四个型号,我们称之为汽车和房屋.用户可以拥有多辆汽车和多个房屋.汽车和房屋属于用户.我希望用户能够上传他们汽车的多张照片,以及他们房屋的多张照片,从我读到的这意味着创建一个名为"照片"的新模型.两个不同的模型是否可以同时拥有多张照片,而照片属于多个模型?我正在使用Ruby 2.0.0和Rails 4.
Sketch/PseudoRuby
User
has_many :cars
has_many :houses
Car
belongs_to :user
has_many :photos
House
belongs_to :user
has_many :photos
Photo
belongs_to :car, :house
Run Code Online (Sandbox Code Playgroud)
这段关系好吗?我不确定是否必须为Car and House的照片制作单独的模型.
小智 9
从Rails的角度来看,是的,你可以做到.belongs_to关联告诉Rails将foreign_key保留在Photo模型中.因此,在您的示例中,您的照片表将包含2个外键:
现在,从回形针的角度来看,您可以根据需要为特定型号提供尽可能多的照片.但是,为了使相同的Photo模型与House和Car相关联,您需要使用多态关联.你的模型将类似于:
class Photo < ActiveRecord::Base
belongs_to :imageable, polymorphic: true
has_attached_file :photo, styles: {}
end
class Car < ActiveRecord::Base
has_many :photos, as: :imageable
end
class House < ActiveRecord::Base
has_many :photos, as: :imageable
end
Run Code Online (Sandbox Code Playgroud)
您可以在此处获取有关多态关联的更多信息:http://guides.rubyonrails.org/association_basics.html
| 归档时间: |
|
| 查看次数: |
1704 次 |
| 最近记录: |