我的 rails 应用程序中有一个 simple_form,我想用 URL 参数预填充一些字段。
示例网址是:
http://localhost:3000/surveys/new?phone=8675309
这使用以下代码正确地预填充电话字段:
<%= simple_form_for @survey, :html => { :class => 'form-horizontal' } do |f| %>
<%= f.input :state, :required => true %>
<%= f.input :zip, :required => true %>
<%= f.input :phone, :required => true, :input_html => { :value => params['phone'] } %>
<% end %>
问题是如果提交的表单没有必填字段,则会重新加载表单,但不会保留电话输入值。
如果表单在没有 zip 值的情况下提交,则在红色 URL 中出现验证错误的重新加载页面现在是:
http://localhost:3000/surveys
例如,如果状态字段正确但没有邮政编码,则重新加载表单并显示错误消息,说明需要 zip。
状态值被保留,但手机没有。
我想这与手机的 f.input 中的 :value => params['phone'] 有关。
无论如何,我是否可以在 simple_form 的初始加载中填充 URL 参数,并在服务器端验证失败时保留这些值?
非常感谢。