如何在Ruby on Rails中找到给定类的所有范围名称?

sjs*_*jsc 4 ruby activerecord ruby-on-rails ruby-on-rails-4

例如,假设我为类Task定义了范围,有没有办法找到该类的所有范围名称?

我正在寻找类似的东西:

Task.scope_names
Run Code Online (Sandbox Code Playgroud)

这将输出如下内容:

["completed", "uncompleted", "pending"]
Run Code Online (Sandbox Code Playgroud)

关于如何做的任何想法?

And*_*eko 8

按照docs这样的方法

Model.scopes 
#=> outputs all scopes
Run Code Online (Sandbox Code Playgroud)

Model.send(:valid_scope_name?, scope_name)
#=> takes scope name as an argument and returns either true or false
Run Code Online (Sandbox Code Playgroud)

自Rails 3.1.0以来不再可用.