Has_many Rails 中不同模型的关联



我有几个不同的模型,我想添加多个图像。

我有一个图像模型,其中包含belongs_to关联,设置为不同的拥有模型(每个拥有模型中的每一个都has_many :images定义(。

我想知道为了向每个拥有模型添加image_ids列,我应该创建哪些适当的迁移。

我假设是这样的...

rails g migration AddImagesToBusinesses images businesses image_ids:integer

但是,我很困惑,因为我相信您只能以这种方式进行一个关联,并且需要通过在图像表中添加一列来识别它所属模型的 id(这里有几个不同的模型(。

谢谢你的帮助。

当您关注图像与其他模型的关系时。您应该尝试这样的多态关联。

生成映像模型:

class CreateImages < ActiveRecord::Migration
  def change
    create_table :images do |t|
      t.string :file_id
      t.boolean :featured
      t.references :imageable, polymorphic: true, index: true
      t.timestamps null: false
    end
  end
end

更新映像模型:

class Image < ActiveRecord::Base
  attachment :file
  belongs_to :imageable, polymorphic: true
end

添加与其他模型的关联,如下所示

class Model < ActiveRecord::Base
  has_many :images, as: :imageable, dependent: :destroy
  accepts_attachments_for :images, attachment: :file
end

有关更多详细信息,请参阅Ruby on Rails Guide。

我认为你需要多态关联。请在此处查看文档。

相关内容

  • 没有找到相关文章

最新更新