2010-12-11 9 views
1

qu'est-ce que cela signifie? redirect_to "" et retourRuby on rails redirect_to

+0

Voir aussi http://guides.rubyonrails.org/layouts_and_rendering.html#using-redirect_to – Zabba

Répondre

5

Selon les documents API de rails: la partie de retour arrête l'exécution de toute autre chose. En d'autres termes, si vous avez le texte ci-dessous, le texte ne s'imprimera jamais à cause de l'instruction return.

def go_home 
    redirect_to(:action => "home") and return 
    puts "This will never print" 
    end 

Dans l'exemple suivant and return est appelé seulement if monkeys.nil? est vrai.

def do_something 
    redirect_to(:action => "elsewhere") and return if monkeys.nil? 
    render :action => "overthere" # won't be called if monkeys is nil 
    end 

de: http://api.rubyonrails.org/classes/ActionController/Base.html

+0

Notez que cet idiome profite de l'évaluation de court-circuit du booléen 'et' expression. Si le 'redirect_to' renvoie' false', Ruby prend le court-circuit et ne prend pas la peine d'évaluer le reste de l'expression; cependant, si 'redirect_to' renvoie' true', le reste de l'expression doit être évalué. Comme le reste est 'return', l'effet de l'expression entière est:" émettre un code de redirection (302) et si cela arrive vraiment, alors retourner sans prendre d'autre action ". –