ライブかどうかを示すために属性を追加する必要があるモデルがあります。たとえば、trueに設定できるdisabledと呼ばれるブール値です。unless disabled == false
既に大きなコードベースがあり、すべてのクエリに条件を追加したくありません。
この属性をチェックするために、すべてのクエリの前に実行できる何らかの前フィルターはありますか?
ライブかどうかを示すために属性を追加する必要があるモデルがあります。たとえば、trueに設定できるdisabledと呼ばれるブール値です。unless disabled == false
既に大きなコードベースがあり、すべてのクエリに条件を追加したくありません。
この属性をチェックするために、すべてのクエリの前に実行できる何らかの前フィルターはありますか?
ActiveRecord の default_scope ステートメントを使用できます。モデルを通じて実行される各クエリに、定義したスコープを連結します。
class MyModel < ActiveRecord::Base
default_scope where(:disabled => false)
end
現在これを実行しています:
MyModel.all
生成:
# => SELECT * FROM my_models WHERE disabled =false
その完全なドキュメントは、ここにあります。ブログでも話題にしました。default_scope については、適用する前に確認することをお勧めする素晴らしい洞察がいくつかあります。