2016-07-17 5 views
0

私は制御しないデータベースからデータをより簡単に引き出すためにいくつかのモデルを作成しています。私はモデルDatasetを持っています。私はエントリについてのみ心配しますDataset.where(type: 'set')Rails:隠しスコープを常にアクティブにすることは可能ですか?

私はこれを行うための範囲を作ることができることを知っています。

class Dataset < ActiveRecord::Base 
    scope :set, ->{ where(type: 'set') } 
end 

スコープを常に適用できるかどうかは疑問です。私はDataset.allと呼ぶことができ、実際にはタイプが「設定されている」エントリを得ることができます。 スコープを常にアクティブにしてこのように非表示にすることはできますか?

ありがとうございました!

答えて

2

あなたはdefault_scopeを探しています。

我々はモデル にすべてのクエリ全体に適用される範囲をご希望の場合は、我々はモデル自体の中default_scopeメソッドを使用することができます

class Dataset < ActiveRecord::Base 
    default_scope { where(type: 'set') } 
end 
関連する問題