2012-09-27 12 views
6

ActiveRecordをRails 3で使用しています。ActiveRecord 3.xですべてのスコープリストを取得する方法

私のモデルではスコープを定義しています。そのモデルのすべてのスコープの一覧を取得するにはどうすればよいですか?

以前

私はModel.scopes

OR 私はスコープが定義されているチェックしたりすることはできません使用することができますか?何かのようにModel.scope_defined?("scope_name")

ありがとうございます。

答えて

3

あなたは範囲がこのよう

Model.send(:valid_scope_name?, :scope_name) 

定義されているかどうか、それがない場合、それは存在しnilない場合、それはtrueを返します見ることができます。

valid_scope_name?のソースコードを確認すると、respond_to?を使用してテストしてからロギング部分を避けることができます。

Model.respond_to?(scope_name, true) 
+0

いいえAR 3.x – Sayuj

+0

に「scope」メソッドがありません申し訳ありません、私は自分の答えを編集しました。 – oldergod

+1

ありがとう! OK。しかしrespond_to?モデルのスコープか属性かをチェックしません。モデルに 'some_attribute'があるとします。それは '真実 'を与える​​。スコープだけをチェックしたいあなたは私の心配があることを願っています – Sayuj

関連する問題