在我的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会导致问题。我只是不确定解决方案是什么。
答案 0 :(得分:3)
而不是重定向,只需呈现:new
操作。表格项目应保留。
# ...
else
flash[:error] = 'Could not save Solicitor.'
# should include .fieldWithErrors formatting in the view
render :action => 'new'
end