Rieccomi, ieri mi sono visto uno screencast carino, qui e volevo segnalarvi anche a voi questa utile funzione.

Partiamo dal fatto che probabilmente è utile nei backend di un sito. Vi faccio un esempio, mettiamo che usate javascript per la gestione del login...

E' spesso molto utile poter intervenire con codice Ruby nei nostri JS ma fino alla precedente versione di Rails io intervenivo con un mio plugin Embedded Javascript che mi permetteva di usare i file ejs con codice ruby + javascript.

Ora tutto ciò come vi ho anticipato sopra è molto più semplice e non abbiamo bisogno di utilizzare plugin di terze parti.

Nella pagina seguente vi mostro un piccolo esempio.

Per prima cosa dobbiamo generare un controller, io lo chiamo javascripts in modo che quando lo includerò nella mia vista non dovrò inserire la path.

Quindi scriviamo nella nostra console:

$ script/generate controller javascripts
Ora apriamo javascripts_controller.rb e inseriamo un metodo come segue:
# javascripts_controller.rb

def admin
@user = current_user
end

A questo punto nulla di più semplice creiamo un file admin.js.erb in /views/javascript/ e scriviamo:

//admin.js.erb

alert('Benvenuto Amministratore')

Infine dobbiamo creare una rotta in modo tale che quando scriveremo nel nostro browser una rotta che permetta l'interpretazione del nostro nuovo JavaScript

map.connect 'javascripts/:action.:format', :controller => 'javascripts'

Bene, se punterete il vostro browser in http://localhost:3000/admin.js dovreste vedere il codice se siete "amministratori".

Ovviamente questo è un codice d'esempio che spiega a grandi linee uno scenario di utilizzo... il resto spetta a voi e ricordate che come per le pagine html se ci sono 2 file con lo stesso nome nelle viste e nella directory public hanno precedenza i file che si trovano in public, ciò significa che se avete già un file in /public/javascripts/admin.js ha precedenza su quello che avete in /views/javascripts/admin.js.erb

Buon divertimento e se avete qualche consiglio da darmi non esitate!