Introduction
GitHub : Gemme d'exposition décente
Decent Exposure nous permet de créer des variables exposées qui peuvent être utilisées dans les actions du contrôleur au lieu de répéter les variables d'instance. Les variables exposées sont également accessibles depuis les vues et mémorisent les valeurs résultantes. En d’autres termes, c’est une aide pour créer des interfaces déclaratives dans les contrôleurs.
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,