Вы можете получить все определенные именованные области для модели, используя
Model.scopes
=> {:one_scope_name=>#<Proc:0x0000...>, :other_scope_name=>#<Proc:0x0000...>, ... }
Он дает вам хэш, поэтому, если вы хотите только имена, используйте Model.scopes.keys
Но это даст вам только те области, которые уже определены. Это не поможет вам, области, сгенерированные searchlogic, потому что, как вы можете прочитать в документации (в разделе «Под капотом»), области типа field_eq
и т. Д. Создаются только при первом их использовании:
"Searchlogic использует method_missing
создать все эти именованные области.
Когда он попадает в method_missing, он создает
именованная область, чтобы гарантировать, что это никогда не будет
отсутствует метод попадания для этого имени
снова сфера Вроде кеширование
механизм. Работает в том же
мода как ActiveRecord "find_by_ *"
методы. Таким образом, только названный
необходимые области созданы и
больше ничего. "