gpt4 book ai didi

ruby-on-rails - 多个模型的多个图像 - Paperclip、Rails

转载 作者:行者123 更新时间:2023-12-04 07:37:12 25 4
gpt4 key购买 nike

我有四个模型,我们称它们为汽车和房屋。用户可以拥有多辆汽车和多栋房屋。汽车和房屋属于用户。我希望用户能够上传他们汽车的多张照片和房屋的多张照片,据我所知,这意味着创建一个名为“照片”的新模型。是否有可能两个不同的模型都有很多照片,而照片属于多个模型?我正在使用 Ruby 2.0.0 和 Rails 4。

草图/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

这段关系还好吗?我不确定是否必须为 Car 和 House 的照片制作单独的模型。

最佳答案

从 Rails 的角度来看,是的,您可以做到。 belongs_to 关联告诉 Rails 将 foreign_key 保留在 Photo 模型中。所以在你的例子中,你的照片表将有 2 个外键:

  • car_id 将指向 cars 表中关联的汽车 ID(主键)。
  • house_id 将指向 house 表中关联的房屋 ID(主键)。

现在,从回形针的角度来看,您可以根据需要为特定型号制作任意数量的照片。但是,为了将相同的 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

您可以在此处获得有关多态关联的更多信息:http://guides.rubyonrails.org/association_basics.html

关于ruby-on-rails - 多个模型的多个图像 - Paperclip、Rails,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19279553/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com