Approggio pragmatico agli helpers in rails?

Ciao a tutti,

come gestite gli helpers?
Il default di rails includere tutti gli helper dovunque, il che
potrebbe
portare a clash di nomi.

Questo si pu disattivare globalmente, su versioni recenti di rails,
inserendo in application.rb
#do NOT include all the helpers
config.action_controller.include_all_helpers = false
(thx weppos)

Naturalmente questo pu rompere cose, qualora si siano usati metodi di
helper relativi ad altri controller in alcune delle proprie view.

la soluzione includere i moduli degli helper per ogni controller che ne
fa uso, ma magari voi avete un approccio pi pratico / consolidato.

:slight_smile:

evito gli helper e uso Cell :wink:

2012/11/22 Sante R. [email protected]

Non mi mai capitato di avere dei clash di nomi negli helper.
Devo dire che ultimamente li uso poco. Ora vanno di moda i presenters,
dove hai la logica di visualizzazione racchiusa in una classe, quindi il
problema del clashing non si pone.

Gli helpers come molte altre cose in Rails sono pratici e comodi da
usare, e come tutte le comodit ti fanno impigrire. In questo caso il
rischio di dimenticare le buone pratiche della programmazione a
oggetti.
Li uso ancora, ma evito attentamente quelle cose tristi tipo includere
un helper in un controller. E quando le cose si fanno complicate
estraggo una classe.

E comunque per evitare il name clashing puoi farti dei namespace negli
helper.

-f

2012/11/22 Fabrizio R. [email protected]

Non mi mai capitato di avere dei clash di nomi negli helper.
Devo dire che ultimamente li uso poco. Ora vanno di moda i presenters,
dove hai la logica di visualizzazione racchiusa in una classe, quindi il
problema del clashing non si pone.

Diciamo che io preferirei aderire alla convenzione di rails riguardo gli
helpers, pi per consistenza che per pigrizia.
Il clashing nei nomi deriva dall’uso di engine che forniscono helper con
nomi un po’ disinvolti. Hanno un namespace, ma venendo inclusi
direttamente
(conf di default) come se non lo avessero all’atto pratico.

Comunque, secondo me, questo un ottimo topic per il ruby day :smiley:

Funziona Cell con Rails 3?

2012/11/22 maurizio de magnis [email protected]

2012/11/22 Matteo V. [email protected]

Funziona Cell con Rails 3?

yep

diciamo che i presenters, pi che una moda, sono una buona soluzione
per risolvere alcuni problemi, soprattutto con i fat models :stuck_out_tongue:

ultimamente ho avuto una bella discussione filosofica su questo
argomento. avevamo una serie di controllers che dovevano restituire
strutture di dati aggregati e presentarle in html e json.

per evitare i fat models, e riutilizzare pi codice possibile, ci siamo
accordati per una strategia abbastanza semplice:

  • i view helpers li usiamo prettamente per le views in html, senza
    escludere di inserire anche il markup per snellire le viste (aka
    dumb-views)
  • i presenters li utilizziamo per strutturare i dati aggregati, in
    questo modo possiamo usarli anche per gli altri formati (es: json)

se un domani si decidesse di eliminare del tutto la parte delle views in
html (magari costruendo una single-page-app), baster eliminare i view
helpers senza troppe preoccupazioni :slight_smile:

per il name clashing, basta fare attenzione ai nomi usati per i metodi,
come del resto accade per altre porzioni dell’app :stuck_out_tongue:

ciao,
A.

Il giorno 22/nov/2012, alle ore 12:52, Fabrizio R.
[email protected] ha scritto:

Non mi mai capitato di avere dei clash di nomi negli helper.
Devo dire che ultimamente li uso poco. Ora vanno di moda i presenters, dove hai
la logica di visualizzazione racchiusa in una classe, quindi il problema del
clashing non si pone.

Gli helpers come molte altre cose in Rails sono pratici e comodi da usare, e
come tutte le comodit ti fanno impigrire. In questo caso il rischio di
dimenticare le buone pratiche della programmazione a oggetti.
Li uso ancora, ma evito attentamente quelle cose tristi tipo includere un helper
in un controller. E quando le cose si fanno complicate estraggo una classe.

E comunque per evitare il name clashing puoi farti dei namespace negli helper.


http://andreapavoni.com

parliamo di questo? GitHub - trailblazer/cells: View components for Ruby and Rails.

qualche risorsa sui presenters? :slight_smile: :slight_smile: :slight_smile:

On Thu, Nov 22, 2012 at 2:51 PM, maurizio de magnis <

On 22 November 2012 14:38, Fabrizio R. [email protected] wrote:

parliamo di questo? GitHub - trailblazer/cells: View components for Ruby and Rails.

lui :slight_smile:

http://nicksda.apotomo.de/2011/10/rails-misapprehensions-helpers-are-shit/

2012/11/22 Sante R. [email protected]

Rispolvero questo thread un po’ datato :slight_smile:
Ho dato un’occhiata ai vari suggerimenti, e trovo i cells interessanti.
Non ho però dati in merito alla velocità di questa soluzione, qualcuno
che
li usa estensivamente mi sa dare qualche puntatore?

Grazie! :slight_smile:

2012/11/22 maurizio de magnis [email protected]

Non ho per dati in merito alla velocit di questa soluzione, qualcuno che
li usa estensivamente mi sa dare qualche puntatore?

Certo!

int *pointer;
int x=1;
pointer= &x;

il puntatore e’ servito!

(scusate non ho resistito)

Davide