2

在我的表单中,用户会根据会话中的值按顺序显示特定视图。这一切都很好,除了当用户返回到以前的表单时,表单没有预先填充会话中的数据。

我的模型没有扩展 ActiveModel,因为我没有使用本地数据库做任何事情。

<%= form_tag do %>
    <%= field_set_tag do %>
        <label for="form_firstname">First name:</label>
        <%= text_field "form", "firstname" %>

        <label for="form_surname">Surname:</label>
        <%= text_field "form", "surname" %>

        <label for="form_dob_3i">Date of Birth:</label>
        <%= date_select("form", "dob", :start_year => 1912, :end_year => 1994, :order => [:day, :month, :year], :prompt => { :day => 'Day', :month => 'Month', :year => 'Year' }) %>

        # and many other fields including radio/check/text/select ...

        # next / back buttons...
    <% end %>
<% end %>

我的问题是如何让表单记住会话中的数据并预填充该字段?

对于文本字段,我可以像这样添加一个值属性,但我不确定这是最好的方法:

<label for="form_address_line_1">Address:</label>
<%= text_field "form", "address_line_1", :value => session[:quote]['policyholder']['address_line_1'] %>

我也不确定如何将其应用于无线电场等,因为以下内容不起作用(尽管对我来说很有意义):

<%= radio_button_tag 'form[homeowner]', 'yes', :checked => 'checked' if session[:quote]['policyholder']['homeowner'] = 'yes' %>
<label for="form_homeowner_yes">Yes</label>

<%= radio_button_tag 'form[homeowner]', 'no', :checked => 'checked' if session[:quote]['policyholder']['homeowner'] = 'no' %>
<label for="form_homeowner_no">no</label>
4

1 回答 1

0

使用视图中的后退按钮呈现前一个表单,而不是重定向到它......所以试试这个而不是redirect_to:render 'your_controller_action'

于 2012-08-25T05:40:19.670 回答