Pregunta

leí un artículo aquí y utilicé los principios que se encuentran allí para redactar un cheque de administración para mis controladores.Básicamente, verifica en qué controlador se encuentra y luego creo una matriz que dice si esta persona tiene permiso para ver ese controlador, luego lo encuentra y lo pasa.

El autor del artículo dijo que los lectores no deberían usar el código de ejemplo porque tenía fallas y que deberían usar su complemento (que por supuesto ya está desactualizado).Y él dijo

"Hay algunos problemas con el código anterior cuando se ejecuta en modo de producción debido al uso de variables de clase y almacenamiento en caché de clases".

Tengo una prueba que falla y creo que podría deberse a esto, pero no estoy muy seguro de qué parte del código no debería usar.Tuve lo siguiente (en application.rb):

 controller = params[:controller]
 action = params[:action]

Pero lo cambié a:

controller = self.class.name
action = params[:action]

¿Cómo accedo al nombre de la acción correctamente?Y, en general, ¿qué tipo de cosas puedes hacer en modo de desarrollo que no puedes hacer en producción?

¿Fue útil?

Solución

¿Ha considerado un complemento de permisos basado en roles?Consulte la siguiente pregunta de stackoverflow:

¿Qué complemento de Rails es mejor para permisos basados ​​en roles?(Proporcione una nominación por respuesta)

No tengo conocimiento de ningún problema con el uso en producción del código que ha pegado.El complemento en cuestión puede tener algunos problemas debido a un posible mal uso de @@; sin embargo, no lo he inspeccionado a fondo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top