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:
- 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