web-dev-qa-db-ja.com

レンダリング:アクションとパラメータ

2つのメソッドを持つ1つのクラスがあります。最初のメソッドは、いくつかのGETパラメーター(params [:page])を使用してビューによって呼び出されます。これらのパラメータを保存し、レンダリングアクションで2番目のメソッドに送信したいと思います。

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

だから私の質問は:レンダリング:アクションでパラメータを送信するにはどうすればよいですか?

ありがとう:)

18
Swann
render :action => "second"

レンダリングすると、:actionで記述されたメソッドは呼び出されず、そのアクション名を持つビューのみが呼び出されます。

あなたの例では、レンダリングするときに、メソッドsecondは呼び出されませんが、代わりにsecond.html.erbビューをレンダリングしています。

詳細については、 this を参照してください。

そのメソッドを呼び出すには、 redirect_to を使用する必要があります。これは次のようになります。

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