[ruby-it] Aiuto! Ho un problema con l'esecuzione di JS

Andrea Pavoni apeacox a gmail.com
Ven 12 Feb 2010 16:35:53 CET


da quello che vedo, stai usando javascript per:
- segnalare il login corretto/errato
- redirezionare l'utente

a questo punto ti chiedo: ma non è meglio NON usare javascript per 
queste cose? (doppia negazione, sigh!)

puoi risolvere il problema usando l'oggetto flash:

flash[:notice] = "Login corretto..."

oppure

flash[:error] = "Utente/Password errati"

a quel punto nel template (meglio nel layout se lo usi spesso) utilizzi 
qualcosa di simile:

<%- flash.each do |name, msg| -%>
<%= content_tag :div, msg, :id => "flash_#{name}" %>
<%- end -%>

nel CSS definisci due selettori:
#flash_notice { }
#flash_error { }


tieni presente che questo metodo funziona anche se JS non è attivato sui 
client, ed è anche più pulito :D

quanto a RJS, non ho ancora avuto bisogno di usarlo, quindi non conosco 
eventuali problematiche ;)

ciao,
A.

On 12/02/2010 15:42, Cristiano Xxx wrote:
> Grazie Andrea, nel codice che ho postato qui sotto viene utilizzato
> proprio il metodo redirect_to, ma dall'oggetto page... non so se questo
> ha a che fare con il wrap "try {... }catch(e)" che contiene ogni JS che
> viene interpretato come plain-text
>
>
> Questo è il codice all'interno di studente_controller.rb dell'action
> login
>
>    # Metodo utilizzato per l'operazione di "log in" da parte dell'utente
> di tipo Studente
>    def login
>     session_cleanup
>
>      info = remote_check(params[:studente][:matricola],
> params[:studente][:password])
>      if info.nil?
>        render :update do |page|
>          page.alert "Password scorretta!"
>        end
>      else
>        studente = info
>        student_info = Studentinfo.new(studente)
>        session[:utente] = student_info
>        session[:expires_at] = 60.minutes.from_now
>        session[:user_type] = 'Studente'
>        render :update do |page|
>          page.redirect_to :controller =>  'admin/info', :action =>
> 'home_studente'
>        end
>      end
>    end
>    



More information about the Ml mailing list