重定向回到表单保留以前输入的值

时间:2012-02-06 22:54:44

标签: ruby-on-rails

在我的rails 3应用程序中,我有Prospects和Solicitors。前景广泛的律师。在我创建新潜在客户的形式中,我有一个选择框,其中包含当前的律师名单。同样在新的潜在客户表格中,我有link_to new_solicitor_path,如果需要,可以添加新的律师。在使用新的律师表格后,将其填写并按下提交按钮,他将被带回新的预展表格。一切正常。

我希望发生的事情是当用户重定向回到新的潜在客户表单时,他输入的所有信息都会保留,以便点击“新的律师”链接。现在,当用户完成创建新律师并重定向回潜在客户表单时,所有表单字段再次为空白。

更新 我会尝试更清楚。

用户克隆链接以创建新潜在客户

<%= link_to "New Prospect", new_prospect_path %>

这链接到一个呈现部分

的新动作
<%=render 'form'%>
表单中的

是一个预先填充了当前律师的选择框,并且有一个链接可以添加新的律师。

<%= select_tag "prosolicitor", options_from_collection_for_select(@org.solicitors.all, "id", 'fullname', @prospect.solicitors.first.id), :include_blank => true %>
 <%= f.label :Primary_Solicitor %><%= link_to "(new)", new_solicitor_path%><br/>

当用户点击新的律师链接时,他们将被带到新的律师表格。在律师的控制器

def create
      @solicitor=@org.solicitors.new(params[:solicitor])
      session[:return_to] ||= request.referer
      if @solicitor.save


        redirect_to session[:return_to]


        flash[:notice]='Solicitor saved!'
      else

        render new_solicitors_path
         flash[:notice]='Could not save Solicitor.'
      end

    end

这让我回到了新的潜在客户表单,但用户在点击新的律师链接之前输入的所有数据都将丢失。感谢Marc的评论,我想我明白使用redirect_to会导致问题。我只是不确定解决方案是什么。

1 个答案:

答案 0 :(得分:3)

而不是重定向,只需呈现:new操作。表格项目应保留。

# ...
else
  flash[:error] = 'Could not save Solicitor.'
  # should include .fieldWithErrors formatting in the view
  render :action => 'new'
end