Rails中同一模型上的多个多态关联

蒂姆·佩特里科拉

我在Image模型上有一个多态关联,并且需要模型上有两个关联Place就像是:

class Place < ActiveRecord::Base
  has_many :pictures, as: :imageable, class_name: 'Image'
  has_one :cover_image, as: :imageable, class_name: 'Image'
end

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

这显然是行不通的,因为Image模型不知道图片和cover_image之间的区别,并且每个图片都存储在

#<Image ... imageable_id: 17, imageable_type: "Place">

我正在考虑添加一imageable_sub_type列以Image存储子类型。.所以我的图像看起来像:

#<Image ... imageable_id: 17, imageable_type: "Place", imageable_sub_type: "cover_image">

我可以轻松地从我的关联中检索具有该子类型的图像Place

has_one :cover_image, -> { where(imageable_sub_type: 'cover_image'), as: :imageable, class_name: 'Image'

但我找不到在将图片添加到时设置此值的方法Place(实际上始终设置为nil)。

有没有办法做到这一点?


我试图这样做:https//stackoverflow.com/a/3078286/1015177但问题仍然存在,imageable_sub_type仍然是nil

悄悄

通过在关系中添加条件,可以在调用时检索imageswith 添加图像时,它不会为您设置属性。当基于视图的某些输入(例如复选框标签)添加图像时,必须单独完成此操作。imageable_sub_type = cover_imageplace.cover_image

更新:您可以覆盖默认association=方法,如Place模型中的以下所示

 def cover_image=(img)
     # add the img to tthe associated pictures 
     self.pictures << img 

     # mark current img type as cover
     img.update_attribute(:imageable_sub_type, "cover_image")

     # mark all other images type as nil, this to avoid multiple cover images, 
     Picture.update_all( {:imageable_sub_type => nil}, {:id => (self.pictures-[img])} ) 

 end

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

同一模型上的多态和非多态关联

来自分类Dev

Rails多态关联和has_many用于同一模型

来自分类Dev

在Rails的同一查询中从关联模型加载数据

来自分类Dev

在同一模型中的Rails关联“ has_many:through”

来自分类Dev

从一个模型中检索Rails中的多态关联

来自分类Dev

Rails 多态关联多模型

来自分类Dev

Rails多态关联在模型中不可用

来自分类Dev

测试Rails中的多态关联

来自分类Dev

测试Rails中的多态关联

来自分类Dev

与Rails中的同一模型列建立两个关联

来自分类Dev

与Rails中的同一模型列建立两个关联

来自分类Dev

无法让 STI 在模型上充当多态关联

来自分类Dev

cakephp 3.2中同一表上的模型关联(用于菜单和子菜单概念)

来自分类Dev

在同一个模型上使用一个具有多个关联并具有一个关联

来自分类Dev

在同一个模型上使用一个具有多个关联并具有一个关联

来自分类Dev

验证多态关联中一个或多个模型实例的限制

来自分类Dev

Rails别名,用于多态关联上的属性

来自分类Dev

Rails多态模型中记录的唯一性验证

来自分类Dev

具有休眠标准的同一实体上的多个关联

来自分类Dev

在多个模型关联上获得唯一性

来自分类Dev

尝试避免Rails中的多态关联

来自分类Dev

Rails 统计多态关联中的记录数

来自分类Dev

多态关联中的查询 - Rails 5.1

来自分类Dev

将所有模型关联在Rails上的ruby中

来自分类Dev

具有相同模型的Ruby on Rails 4的多态关联

来自分类Dev

具有相同模型的Ruby on Rails 4的多态关联

来自分类Dev

在 rails 中的同一模型上使用不同的 SQL 填充活动记录集合

来自分类Dev

Django在与同一模型相关的多个字段上注释

来自分类Dev

同一ActiveForm yii2上的多个模型

Related 相关文章

热门标签

归档