我正在尝试在Rails 4中创建一个select html元素,但我无法同时获得我想要的所有内容。
我有一个控制器,其路线为/rule_search
,其中包含:
def index
# RuleType is an AR model and only has the columns `id` and `name`
@rule_types = RuleType.all
# I would like to be able to access a param such as the below example when the form is submitted
@rule_type_id = params[:rule_type_id]
end
我有一个名为index.html.erb的视图,我有一个表单。
<h2>Rule Search</h2>
<%= form_tag("/rule_search", method: "post") do %>
<table>
<tr>
<td>Rule Type</td>
<td><%= # Select Element Goes Here %></td>
</tr>
<tr>
<td><%= label_tag(:name, "Search for:") %></td>
<td><%= text_field_tag(:name, @name) %></td>
</tr>
</table>
我希望select元素上有一个空白值,即使用户之前选择了实际值,也总是可以选择。 “无”选项而不是提示。
我希望上一个表单提交中的选定值保留在select元素上。
我想使用form_tag
而不是form_for
,因为我没有尝试使用此表单创建AR对象。我只是想创建一个简单的select元素,它持久保存自己的选择,并将其值提交给控制器,并使用表单的其余部分。
答案 0 :(得分:0)
这应该是你需要的。 Rails也可能有一个简单的语法,但这应该做你想要的。
<tr>
<td>Rule Type</td>
<td>
<select>
<% @rule_types.each do |rule| %>
<option><%= rule %></option>
<% end %>
</select>
</td>
</tr>