【问题标题】:Maniging relations in rails管理 Rails 中的关系
【发布时间】:2015-09-27 01:37:07
【问题描述】:
我正在开发一个应用程序,我必须创建一个模型 product,它有许多 pictures 和一个主要的 picture。我想通过关系来模拟这种情况,而不是使用额外的布尔字段来判断一张图片是否是主图片。我认为解决方案是在product 中使用has_one 和has_many 关系,它们都链接到picture,但我不知道该怎么做。
【问题讨论】:
标签:
ruby-on-rails
database-relations
【解决方案1】:
您将需要一些方法来区分您的“主要”图片与其他图片。这可以通过多种方式完成:
一个单独的数据库表,例如,main_pictures
class Product
has_many :pictures
has_one :main_picture
end
或Picture 上的一些其他属性。这可以是布尔值或其他字段。在下面的示例中,我们将在 pictures 表上使用名为 primary 的布尔属性。
class Product
has_many :pictures
has_one :main_picture, -> { where(primary: true) }
end