如何在ActiveRecord 3.x中获取所有范围列表
我正在使用ActiveRecord和Rails 3。
我在我的模型中定义了范围。 如何获取该模型的所有范围列表?
以前我可以使用Model.scopes
或者我可以检查范围是否已定义? Model.scope_defined?("scope_name")
类的Model.scope_defined?("scope_name")
提前致谢。
您可以通过这种方式查看是否定义了范围
Model.send(:valid_scope_name?, :scope_name)
如果确实存在则返回true
如果不存在则返回nil
。
如果检查valid_scope_name?
的源代码valid_scope_name?
,你看到你可以使用respond_to?
来测试它respond_to?
然后避免记录部分。
Model.respond_to?(scope_name, true)