render :action with params

Swann picture Swann · Jun 30, 2010 · Viewed 37.6k times · Source

I have one Class with 2 methods. The first method is called by the view with some GET parameters ( params[:page] ). I would like to save those params and send them by a render action to my second method.

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

So my question is : How can I send params with a render :action ?

thanks :)

Answer

Salil picture Salil · Jun 30, 2010
render :action => "second"

When you render, then your method written in :action is not called, only the view with that action name is called.

In your example, when you render, then your method second is not called but you are instead rendering the second.html.erb view.

For more details refer to this.

To call that method you have to use redirect_to, which looks something like the following:

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