Decent Exposure Gem – Goodbye to repeating instance variables

Introduction

GitHub : Gemme d'exposition décente
Decent Exposure allows us to create exposed variables that can be used across the controller’s actions instead repeating instance variables. Exposed variables are accessible from views as well and memorize the resultant values. In other words, it is a helper for creating declarative interfaces in controllers.

Des points

  • Améliorer l'encapsulation
  • Les variables des vues peuvent être visibles en haut du contrôleur
  • Compatible avec strong_parameters, décorateurs
  • Expose les odeurs de code.

Jetez un oeil ici: http://c2.com/cgi/wiki?CodeSmell

Conseils pour jouer avec une gemme d'exposition décente dans une application Rails

  • Ajouter une gemme 'exposition_décente' au Gemfile et exécutez l'installation du bundle
  • Comment un contrôleur utilise exposition_décente ressemble à:

  • Par défaut, une exposition décente a été incluse afin d'éviter la mise à jour accidentelle des attributs sensibles du modèle et nécessite que tous les paramètres soient sur liste blanche. Il dispose d’un support intégré pour transmettre des paramètres forts.
  • It deals with overexposure.The ideal number of exposures is two per controller
    (1 -> singular resource, e.g. item and 2 -> plural collections e.g. items).
  • Si le haut de la classe du contrôleur est rempli d'instructions d'exposition, deux odeurs de code peuvent se produire, par exemple l'exposition de variables ne peut pas être utilisée dans la vue et un contrôleur avec plusieurs responsabilités.
  • We can utilize expose with block feature to decorate the object:
    expose(:item) { |default| ItemDecorator.new(default) }
  • Si les classes de modèle sont limitées à un espace de noms tel que Blog::Post, nous devons le spécifier lors de l'appel d'exposition avec model :

    class Blog::PostsController < ApplicationController
    expose(:post, model: Blog::Post)
    fin

Quelques ressources

Modifications de l'API : Modifications de l'API dans la nouvelle version
Diffusions sur rail : Exposition décente
Décoration décente : Gemme de décoration décente
Un blog: Comment diminuer le couplage dans les contrôleurs et les vues

Restez à l'écoute!

Thanks,

LUBAIB CEEJEY
Développeur senior Ruby on Rails 

Abonnez-vous pour les dernières mises à jour

Articles Similaires

Laissez un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

French
English
English
Japanese
German
French
Spanish

WhatsApp nous

Quitter la version mobile