我有一个创建新PlanEntry的表单。
在此表单的顶部,我有此链接可上传视频作为PlanEntry的一部分:
<%= link_to "Upload Video", new_video_sources_path %>
这会将用户带到另一个表单上传视频。成功后,它将返回到新的PlanEntry表单。
如果用户总是通过上传视频开始,这种方式很好,但在某些情况下,他们可能已经草拟了“标题”和“描述”之类的内容。在这些情况下,当用户在上传视频后返回表单时,这些值将丢失。
如何保留这些值?
答案 0 :(得分:0)
我想通了,但是有点迂回曲折。基本上我用这个替换了上面的一行:
<%= 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 controller中,我检查是否存在会话变量。如果是这样,我抓住它们然后清除它们。
if session[:plan_entry].present?
@plan_entry.assign_attributes(session[:plan_entry])
session[:plan_entry] = nil
end