Javascripts dinamici in Rails 2.0.
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
@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
<% if @useradmin? %>
alert'Benvenuto Amministratore'
<% end %>
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!
Categories
- Altro (17)
- Comunicati Stampa (2)
- Fedora (1)
- Linux (17)
- Mac (45)
- Ruby (26)
- Ruby on Rails (45)
- Tutorials (20)
- Windows (13)
Archivi
- March 2009 (1)
- December 2008 (1)
- November 2008 (1)
- October 2008 (1)
- June 2008 (1)
- May 2008 (5)
- April 2008 (2)
- March 2008 (1)
- January 2008 (3)
- December 2007 (5)