1
私は2つのステップを持っています。Ruby on Rails:最後のフォームから新しいフォームにProject_IDを渡す
ステップ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
は、私が間違っている可能性があります:redirect_to project_step_4_path({:step3_project_id =>のparams [:ID]}) – daniel
感謝@klochnerとダニエル - ないこと作業。今すぐURLにproject_idを配置します。私は隠しフィールドの値=> params [:step3_project_id]として投稿ビューで呼びます。 posts_controllerから呼び出す方が効率的で安全な方法はありますか? –
セッションがパラメータを非表示にする唯一の方法です。セキュリティが懸念される場合、おそらくパラメータ(隠されている!=セキュリティ)を隠すよりも強力な何かを持つ必要があります。 – klochner