2016-08-18 17 views
0

コントローラのアクションを管理可能な部分に分解するために、パラメータまたはデータを別のアクションに渡す必要があるアプリケーションを作成しています。それを行うための最善の方法は何ですか?私のコードをテストするために、私はredirect_to同じコントローラ内の別のアクションからアクションをレンダリングしてパラメータを渡す方法

new_calendar_account = { 
     calendar_account: { 
      provider: "google", 
      access_token: auth_client.access_token, 
      refresh_token: auth_client.refresh_token, 
      token_expires_at: token_expiry 
     } 
     } 

redirect_to new_calendar_account_path(new_calendar_account) 

が、そのGETリクエストを発行したと私はPOSTリクエストをしたいと私はそれが不可能であることを読みました。

したがって、別のアクションをレンダリングしてパラメータを渡すことは可能ですか?または、モデルメソッドを作成してすべてのコードを1つの場所に格納するのが最善ですか?

答えて

0

アクションから関数名のような他のアクションを呼び出すことができます。 パラメータを渡す場合は、インスタンス変数を使用するだけです。

def action_one 
    @params = params 
    action_two # to execute the code from action_two 
    render action: :action_two and return # to render view of action_two 
end 

def action_two 
    @params ||= params 
    # work with passed @params 
end 
+0

私は何かをレンダリングしたくない場合、これはまだ動作しますか? –

+0

レンダリングアクションの部分をスキップすると、最後に何が完了したのかを確認できます。 – neongrau

+0

ここでは、@paramsを定義することは必要ありません。action_oneの元のパラメータはaction_twoに関係なく必要です。 – neongrau

関連する問題