如何在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)