在 form_tag 提交获取方法上保留 radio_button 值

Persist radio_button value on form_tag submit get method

我认为这很简单,但在这里真的很挣扎:

<%= form_tag(admin_articles_path, method: "get") do %>

  <p><%= radio_button_tag(:filter, "all") %>
  <%= label_tag(:filter, "All") %></p>

  <p><%= radio_button_tag(:filter, "pub") %>
  <%= label_tag(:filter, "Published") %></p>

  <p><%= radio_button_tag(:filter, "unpub") %>
  <%= label_tag(:filter, "Unpublished") %></p>

  <p><%= radio_button_tag(:filter, "feat") %>
  <%= label_tag(:filter, "Featured") %></p>

 <p> <%= submit_tag("Show", class: "btn btn-sm btn-primary") %></p>

   <% end %>

我的控制器中有一些排序逻辑,当我提交它时,我希望 radio_button 值保留到新视图。我该怎么做?

谢谢!

在您的接收控制器操作中:

@filter = params[:filter]

然后您可以在各自的视图中访问单选按钮选项。

你想做这种事。例如,使用 all 选项...

<p><%= radio_button_tag(:filter, "all", params[:filter] == "all") %>

第三个参数是一个布尔值,表示它是否被选中。

您还需要一些东西来取消选中收音机。我用这个...

<p><%= radio_button_tag(:filter, '', params[:filter].nil?) %>