2010-06-30 10 views
15

J'ai une classe avec 2 méthodes. La première méthode est appelée par la vue avec certains paramètres GET (params [: page]). Je voudrais enregistrer ces paramètres et les envoyer par une action de rendu à ma seconde méthode.render: action avec params

class exemple 
    def first 
    ## sql save of params[:page] 
    render :action => "second" 
    end 

    def second 
    ## 
    ## Here I need my params[:page] to do paginate stuff 
    ## 
    respond_to do |format| 
     format.html 
    end 
    end 
end 

Ma question est: Comment puis-je envoyer params avec un rendu: action?

merci :)

Répondre

20
render :action => "second" 

Lorsque vous render, alors votre méthode écrite en :action n'est pas appelé, seule la vue de ce nom d'action est appelée.

Dans votre exemple, lorsque vous rendez, votre méthode second n'est pas appelée mais vous affichez la vue second.html.erb.

Pour plus de détails, voir this.

Pour appeler cette méthode, vous devez utiliser redirect_to, qui ressemble à quelque chose comme ce qui suit:

redirect_to :action => "second", :page=> 4 
+4

merci pour votre réponse! :) J'ai essayé avec redirect_to et ça marche mais je voudrais envoyer TOUS les paramètres GET de la première méthode à la seconde. Connaissez-vous une solution ou je dois envoyer tous les paramètres un par un? – Swann