Ruby on Rails选择器未默认为当前值

5

我目前在表单中使用以下选择器:

<% form_for :search, :url => search_path, :html => {:method => :get} do |f| %>
        <%=  select('search', :type, options_for_select(['Artist', 'Track'])) %>
        <%= f.text_field :query %>
<% end %>

这个方法可行,但是当我执行搜索时,即使用户在搜索前选择了“Track”,它仍会默认回到“artist”。我该怎么解决?

对于单选按钮,自动选择当前值是可行的:

<% form_for @search, :url => search_path, :html => {:method => :get} do |f| %>
  <p class="radio_button">
  <%= f.label :type_track, 'Search tracks' %>
  <%= f.radio_button :type, 'Track' %>
  </p>
  <p class="radio_button">
  <%= f.label :type_artist, 'Search artists' %>
  <%= f.radio_button :type, 'Artist' %>
  </p>
  <p class="text_field">
  <%= f.label :query, 'Search query' %>
  <%= f.text_field :query, :class => 'auto_focus' %>
  </p>
  <p class="submit">
  <%= submit_tag 'Go' %>
  </p>
<% end %>

任何有助于让这个工作的帮助都将不胜感激!
1个回答

6

您必须使用select表单构建器:

<%= f.select(:type, [["text1", "value1"], ["text2", "value2"], ...]) %>

抱歉 - 数组pairs_name_id应该长什么样子? - tiswas
[["文本", "价值"], ["文本2", "价值2"]] - apneadiving
你应该接受Tokland的答案,当你收到正确答案时这是最起码的。 - apneadiving
我本来想这么做的!但是我等了很久才标记它,然后不得不离开办公室。 - tiswas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接