Ruby on Rails:最後のフォームから新しいフォームにProject_IDを渡す

私には2つのステップがあります。

ステップ3 - 新しいプロジェクトを作成します。 ステップ4 - ステップ3で作成したプロジェクトの新しいディスカッションポストを作成します。

問題は、私はステップ4にちょうど作られたプロジェクトのproject_idを知る方法を理解できません。ステップ3はprojects_controllerを使用し、ステップ4はposts_controllerを使用します。私は、プロジェクトのコントローラでdef Createでセッション[]を使用し、何らかの形でその値をdef_controllerのdef newで取得しようと考えています。動作していない、または残念なことにどのように理解することはできません。

projects_controller

def create
  @project = current_user.projects.build(params[:project])  
  session[:step3_project_id] = params[:id]

  respond_to do |format|
    if @project.save
      format.html { redirect_to project_step_4_path, notice: 'Project was successfully created.' }
      format.json { render json: @project, status: :created, location: @project }
    else
      format.html { render action: "new" }
      format.json { render json: @project.errors, status: :unprocessable_entity }
    end
  end
end
1

1 答え

redirect_to project_step_4_path(:step3_project_id=>params[:id])
2
追加された
セッションはパラメータを非表示にする唯一の方法です。セキュリティが懸念される場合、おそらくパラメータ(隠されている!=セキュリティ)を隠すよりも強力な何かを持つ必要があります。
追加された 著者 klochner,
私はあなたがハッシュを必要と思う、私は間違っている可能性があります:redirect_to project_step_4_path({:step3_project_id => params [:id]})
追加された 著者 daniel,
おかげで@クロフナーとダニエル - それは動作します。今すぐURLにproject_idを配置します。私は隠しフィールドの値=> params [:step3_project_id]として投稿ビューで呼びます。 posts_controllerから呼び出す方が効率的で安全な方法はありますか?
追加された 著者 James F,