2012-09-27 20 views
6

Estoy usando ActiveRecord con Rails 3.¿Cómo puedo obtener toda la lista de ámbitos en ActiveRecord 3.x

Definí ámbitos en mi modelo. ¿Cómo puedo obtener la lista de todos los ámbitos de ese modelo?

Anteriormente podía usar Model.scopes

O ¿Puedo revisar un alcance está definido o no? Algo así como Model.scope_defined?("scope_name")

Gracias de antemano.

Respuesta

3

se puede ver si se define un ámbito de aplicación o no de esta manera

Model.send(:valid_scope_name?, :scope_name) 

volverá true si existe y nil si no lo hace.

Si comprueba el código fuente de valid_scope_name?, verá que puede simplemente probarlo usando respond_to? y luego evitar la parte de registro.

Model.respond_to?(scope_name, true) 
+0

No. no hay un método 'scopes' en AR 3.x – Sayuj

+0

Lo siento, edité mi respuesta. – oldergod

+1

Gracias! De acuerdo. pero responde_to? no verifica si se trata de un "alcance" o un atributo del Modelo. Si tengo 'some_attribute' en mi Modelo. Da 'verdadero'. Quiero verificar solo los ámbitos. Espero que tengas mi preocupación. – Sayuj

Cuestiones relacionadas