Rails - 有效地检查子属性

时间:2017-09-12 13:54:14

标签: ruby-on-rails activerecord

可能是一个非常基本的问题,但我似乎无法弄清楚这一点。说我有模特衣服和颜色。

如果衣服中有某种颜色,衣服有多种颜色,那么使用Active-record检查最有效的方法是什么。如果可能的话我想得到一个布尔值。

1 个答案:

答案 0 :(得分:0)

由于(据推测)许多衣物可以具有相同的颜色而某些衣物有许多颜色,因此您需要一个连接表和(最简单的情况)您使用的是HABTM关系。

当你正在检查一件特定的衣服时(即你已经加装了衣服模型),你可以用模型方法有效地做到这一点。

您可以创建方法has_colour?

class Clothing < ApplicationRecord
  has_and_belongs_to_many :colours

  def has_colour?(colour)
    colours.include?(colour)
  end

end