0

ライブかどうかを示すために属性を追加する必要があるモデルがあります。たとえば、trueに設定できるdisabledと呼ばれるブール値です。unless disabled == false既に大きなコードベースがあり、すべてのクエリに条件を追加したくありません。

この属性をチェックするために、すべてのクエリの前に実行できる何らかの前フィルターはありますか?

4

1 に答える 1

2

ActiveRecord の default_scope ステートメントを使用できます。モデルを通じて実行される各クエリに、定義したスコープを連結します。

class MyModel < ActiveRecord::Base
  default_scope where(:disabled => false)
end

現在これを実行しています:

MyModel.all

生成:

# => SELECT * FROM my_models WHERE disabled =false

その完全なドキュメントは、ここにあります。ブログでも話題にしましたdefault_scope については、適用する前に確認することをお勧めする素晴らしい洞察がいくつかあります。

于 2012-08-09T20:42:49.143 に答える