0

Product モデルに次のメソッドがあります。

def has_feature? (feature_name)
  self.features.where(:name=>feature_name).present?
end

これは非常に遅いようです。製品に特定の名前の機能があるかどうかを確認するより良い方法はありますか?

4

2 に答える 2

1

これを記述するもう 1 つの方法は、モデルでスコープを使用してFeature、それが役立つかどうかを確認しpresent?、そのスコープの結果の出力に対して a を実行することです。

scope :includes_feature, lambda{ |feature|
  { :name => feature }
}

最終的にできることはproduct.features.includes_feature(feature_name)

于 2013-09-20T21:34:00.537 に答える