保持推送无线电按钮的状态

时间:2013-11-09 06:02:22

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.2 ransack

如何在运行搜索后保留“推送”单选按钮的状态?我正在使用Ransack gem来生成此搜索。

查看:

<%= search_form_for @search do |f| %>

  <strong>Location</strong></br>

  <%= radio_button_tag("q[location_cont]", "Kentucky") %>
  <%= label_tag "Kentucky" %></br></br>

  <%= radio_button_tag("q[location_cont]", "Kansas") %>
  <%= label_tag "Kansas" %></br></br>

  <%= f.submit "Search" %>
<% end %>

控制器:

def index
  @search = Job.search(params[:q])
  @jobs = @search.result
end

1 个答案:

答案 0 :(得分:1)

如果您使用form_tag,则radio_button_tag将是有效的字段类型。您可以使用第三个参数来指示是否选择了按钮:

<%= radio_button_tag("q[location_cont]", "Kentucky", params[:q] && params[:q][:location_cont] == "Kentucky") %>
<%= label_tag "Kentucky" %></br></br>

<%= radio_button_tag("q[location_cont]", "Kansas", params[:q] && params[:q][:location_cont] == "Kansas") %>
<%= label_tag "Kansas" %></br></br>

由于您使用的是Ransack search_form_for,因此您想使用radio_button,我认为您需要这样的内容:

<%= f.radio_button(:location_cont, "Kentucky") %>
<%= f.label :location_cont, "Kentucky", value: "Kentucky" %></br></br>

<%= f.radio_button(:location_cont, "Kansas") %>
<%= f.label :location_cont, "Kansas", value: "Kansas" %></br></br>