管理rails中的关系



我正在研究一个应用程序,我必须创建一个模型product,其中有许多pictures和一个主要的picture。我想通过关系来对这种情况进行建模,而不是使用额外的布尔字段来判断一张图片是否是主图片。我认为解决方案是在product中使用has_onehas_many关系,两者都链接到picture,但我不知道如何做到这一点。

您将需要一些方法来区分您的"主"图片与其他图片。这可以通过多种方式实现:

一个单独的数据库表,例如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

相关内容

  • 没有找到相关文章

最新更新