我正在使用ActiveRecord和Rails 3。
我在模型中定义了范围。如何获取该模型的所有范围列表?
以前我可以使用Model.scopes
OR
我可以检查范围是否已定义?像Model.scope_defined?("scope_name")
提前致谢。
答案 0 :(得分:5)
您可以通过这种方式查看是否定义了范围
Model.send(:valid_scope_name?, :scope_name)
如果确实存在,则返回true
,如果不存在,则返回nil
。
如果您检查valid_scope_name?
的源代码,您会发现只能使用respond_to?
对其进行测试,然后避免使用日志记录部分。
Model.respond_to?(scope_name, true)