Introducción
Github: Gema de exposición decente
Decent Exposure nos permite crear variables expuestas que pueden ser utilizadas a través de las acciones del controlador en lugar de repetir variables de instancia. Las variables expuestas también son accesibles desde las vistas y memorizan los valores resultantes. En otras palabras, es una ayuda para crear interfaces declarativas en los controladores.
Algunos puntos
- Mejorar la encapsulación
- Las variables para las vistas pueden ser visibles en la parte superior del controlador
- Compatible con strong_parameters, decoradores
- Expone los olores del código.
Eche un vistazo aquí: http://c2.com/cgi/wiki?CodeSmell
Consejos para jugar con una gema de exposición decente en una aplicación Rails
- Añadir gema exposición_decente al Gemfile y ejecute bundle install
- Cómo utiliza un controlador exposición_decente parece:
- Por defecto, la exposición Decent se incluyó como una forma de prevenir la actualización accidental de atributos sensibles del modelo y requiere que todos los params estén en la lista blanca. Tiene soporte incorporado para pasar parámetros fuertes.
- El número ideal de exposiciones es de dos por controlador.
(1 -> recurso singular, por ejemplo, artículo y 2 -> colecciones plurales, por ejemplo, artículos). - Si la parte superior de la clase del controlador está llena de declaraciones de exposición, dos olores de código pueden ocurrir como exponer variables que no pueden ser utilizadas en la vista y el controlador con múltiples responsabilidades.
- Podemos utilizar la función exponer con bloque para decorar el objeto:
expose(:item) { |default| ItemDecorator.new(default) } - Si las clases del modelo tienen un espacio de nombres como Blog::Post debemos especificarlo en la llamada a exponer con model:
class Blog::PostsController < ControladorDeAplicación
exponer(:post, modelo: Blog::Post)
fin
Algunos recursos
Cambios en la API: Api Cambios en la nueva versión
Railscasts: Exposición decente
Decoración decente: Gema Decorativa
Un blog: Cómo reducir el acoplamiento en controladores y vistas
Permanezca atento.
Gracias,
LUBAIB CEEJEY
Desarrollador Sr. Ruby on Rails
Suscríbete para recibir las últimas actualizaciones
Artículos Relacionados