首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >同一个模型错误上具有多个关联的Rails多态关联

问同一个模型错误上具有多个关联的Rails多态关联
EN

Stack Overflow用户
提问于 2016-11-29 18:23:11
回答 1查看 335关注 0票数 1

我有同样的问题:Rails Polymorphic Association with multiple associations on the same model

但这个问题的解决方案对我不起作用。我有一个图片模型和一个事件模型。活动有许多图片和一张封面图片。这两位都是模特。

代码语言:javascript
复制
class Picture < ActiveRecord::Base
  belongs_to :image, polymorphic: true
end


class Event < ActiveRecord::Base
  has_many :pictures, as: :image, :dependent => :destroy
  has_one :cover_picture, -> { where image_type: "CoverPicture"},
     class_name: Picture, foreign_key: :image_id,
     foreign_type: :image_type, dependent: :destroy
end

这里的问题是,当我创建一个新图片并将其设置为事件的cover_picture时,它不会将image_type设置为"CoverPicture“。在将image_type设置为"CoverPicture“之后,当我尝试保存它时,它会错误地使用"NameError: uninitialized CoverPicture”

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-29 18:35:40

image_type在这种多态关联中具有特定的功能.它标识关联的模型(就像image_id标识id一样)。

您不应该更改image_type,因为这会破坏关联。

在图片模型中创建一个新的布尔列,比如cover_picture,您可以.

代码语言:javascript
复制
has_one :cover_picture, -> {where cover_picture: true} ...

这的优点是您的封面图片也包括在您的图片协会,但如果您希望该图片排除在has_many之外,那么您也可以应用where子句。

代码语言:javascript
复制
has_many :pictures, -> {where.not cover_picture: true} ...
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40873056

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档