Decent Exposure Gem - Adiós a la repetición de variables de instancia

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:

Gema de exposición decente

  • 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

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

es_ESSpanish