我想通了,但有点绕道。基本上我用这个替换了上面的行:
<%= f.submit "Upload Video", :name=>"commit", :value=>"Upload Video" %>
这是提交 PlanEntry 表单的第二个按钮。现在在我的控制器中,我检查提交中单击了哪个按钮。如果是“上传视频”按钮,我将所有参数保存到会话中,并重定向到上传视频表单。
if params[:commit] == "Upload Video"
session[:plan_entry] = params[:plan_entry]
redirect_to new_video_sources_path
else
...
end
上传视频后,它会重定向回新的 PlanEntry 表单。在我的 PlanEntry#new 控制器中,我检查是否存在现有会话变量。如果是这样,我抓住它们然后清除它们。
if session[:plan_entry].present?
@plan_entry.assign_attributes(session[:plan_entry])
session[:plan_entry] = nil
end