Unobtrusive Javascript per Ruby On Rails
A che serve?
Unobtrusive Javascript plug in per Rails permette di inserire eventi javascript agli elementi delle pagine html scrivendoli direttamente in ruby nelle viste o nei controllori sfruttandoli come behaviour, così da non appensatire l’html renderizzato con lunghe sequenze di codice js.
Attualmente Unobtrusive lavora con i seguenti helper:
- link_to_remote
- link_to_function
- button_to_function
- form_remote_tag
- submit_to_remote
se ve ne servissero di nuovi non ci sono problemi potete specificare nuovi comportamenti direttamente inline nelle viste e nei controllori. Comunque già con gli helper predefiniti ci sono dei notevoli vantaggi; ho provato ad usare il plugin su uno dei nostri progetti e questi sono due estratti del prima:
1
e dopo cura:
1
Tutto quello che era in onclick=”…” viene inserito in un file esterno, generato a runtime, e applicato come comportamento all’elemento con id = “uj_element_6″
Se aveste bisogno di definire un comportamento particolare per un particolare elemento potete fare così:
1
Solitamente il behavior viene generato in un file .js a run time, è possibile inserirlo all’interno della pagina con :external => false come opzione.
Come si installa?
L’installazione è veramente semplice e veloce, innanzi tutto installate il plug in:
1 script/plugin install http://source.ujs4rails.com/current/unobtrusive_javascript
chiaramente dalla root del vostro progetto (scusate se scrivo le banalità … ma secondo me repetita iuvant… sempre!!!), adesso lanciate:
1 rake unobtrusive_javascript:install
copierà il file lowpro.js in /public/javascripts.
Aggiungere
1 ... 2 3 ...
nel vostro layout e mettere nel file routes.rb:
1 ActionController::Routes.draw do |map| 2 UnobtrusiveJavascript::routes 3 # Le vostre route qui. 4 end


this bonus