提交表单后,Rails表单字段为空

时间:2013-05-23 10:45:42

标签: ruby-on-rails forms

这是我的表格:

<%= form_tag("/adverts", :method => "get") do %>
Order by: 
<%= select_tag :order_by, options_for_select([['Ascending', 'ASC'], ['Descending', 'DESC']])%>

<%= text_field_tag :text%>

<%= submit_tag 'Change' %>
<% end %>

在我的广告控制器中,索引方法,现在我没有做任何事情,我可以看到它从表单中获取正确的值,

=&gt;但是在提交后页面重新加载时,字段值为空,但我希望它们保留值。

因此,如果我在文本字段中输入一些文本,则在提交表单后该文本仍然存在。

2 个答案:

答案 0 :(得分:3)

像这样:

<%= select_tag :order_by, options_for_select([['Ascending', 'ASC'], ['Descending', 'DESC']], params[:order_by]) %>

<%= text_field_tag :text, params[:text] %>

请参阅options_for_selecttext_field_tag的API。

答案 1 :(得分:2)

如果希望在重新加载时自动获取对象值,则需要为对象创建表单。

<%= form_for @object do |form| %>
  <%= form.text_field :name %> <!-- automatically gets re-populated with the value of @object on postback -->
  <%= form.submit %>
<% end %>

如果您真的想使用表单标签而不是构建器,那么您需要在回发后手动设置值

<%= text_field_tag :text, some_string_value %>