0

我有一个创建新 PlanEntry 的表单。

在这个表格的顶部,我有这个链接来上传视频作为 PlanEntry 的一部分:

<%= link_to "Upload Video", new_video_sources_path %>

这会将用户带到另一个表单来上传视频。成功后,它会返回到新的 PlanEntry 表单。

如果用户总是从上传视频开始,这很好用,但在某些情况下,他们可能已经草拟了诸如“标题”和“描述”之类的内容。在这些情况下,当用户上传视频后返回表单时,这些值会丢失。

我怎样才能保留这些价值观?

4

1 回答 1

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 控制器中,我检查是否存在现有会话变量。如果是这样,我抓住它们然后清除它们。

  if session[:plan_entry].present?
    @plan_entry.assign_attributes(session[:plan_entry])
    session[:plan_entry] = nil
  end
于 2013-11-13T23:08:58.083 回答