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