Gemma di esposizione decente - Addio alla ripetizione delle variabili di istanza

introduzione

Github: Gemma di esposizione decente
Decent Exposure ci consente di creare variabili esposte che possono essere utilizzate in tutte le azioni del controllore, invece di ripetere le variabili di istanza. Le variabili esposte sono accessibili anche dalle viste e memorizzano i valori risultanti. In altre parole, è un aiuto per creare interfacce dichiarative nei controllori.

Alcuni punti

  • Migliorare l'incapsulamento
  • Le variabili per le viste possono essere visibili nella parte superiore del controllore
  • Compatibile con strong_parameters, decoratori
  • Espone gli odori del codice.

Date un'occhiata qui: http://c2.com/cgi/wiki?CodeSmell

Suggerimenti per giocare con il gemma dell'esposizione decente in un'applicazione Rails

  • Aggiungi gemma 'esposizione_decente' al file delle gemme ed eseguire l'installazione di bundle
  • Come un controllore utilizza esposizione_decente sembra:

Gemma di esposizione decente

  • Per impostazione predefinita, l'esposizione decente è stata inclusa per evitare l'aggiornamento accidentale di attributi sensibili del modello e richiede che tutti i parametri siano whitelistati. Ha un supporto integrato per il passaggio di parametri forti.
  • Il numero ideale di esposizioni è di due per ogni controllore.
    (1 -> risorsa singolare, ad esempio item e 2 -> collezioni plurali, ad esempio item).
  • Se la parte superiore della classe del controllore è affollata di dichiarazioni expose, potrebbero verificarsi due errori di codice, come l'esposizione di variabili che non possono essere utilizzate nella vista e il controllore con responsabilità multiple.
  • Possiamo utilizzare expose con la funzione di blocco per decorare l'oggetto:
    expose(:item) { |default| ItemDecorator.new(default) }
  • Se le classi del modello hanno uno spazio dei nomi come Blog::Post, dobbiamo specificarlo nella chiamata di expose con model:

    classe Blog::PostsController < ApplicationController
    expose(:post, model: Blog::Post)
    FINE

Alcune risorse

Modifiche dell'API: Modifiche all'API nella nuova versione
Railcast: Esposizione decente
Decorazione decorosa: Gemma decorativa decente
Un blog: Come diminuire l'accoppiamento nei controllori e nelle viste

Rimani sintonizzato!

Grazie,

LUBAIB CEEJEY
Sr. Ruby on Rails Sviluppatore 

Iscriviti per gli ultimi aggiornamenti

Articoli correlati

Informazioni sull'autore del post

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *


it_ITItalian