如何显示单选按钮集合的选中值

时间:2016-07-26 05:25:53

标签: ruby-on-rails ruby-on-rails-4 form-for ruby-on-rails-5

关于Rails 5和collection_radio_buttons的问题。

当您尝试编辑表单时,如何显示收音机输入的选中值?

<%= collection_radio_buttons(:post, :category_id, Category.all, :id, :name) do |b| %>
  <div class="radio">
     <%= b.label do %>
       <%= b.radio_button + b.text %>
     <% end %>
  </div>
<% end %>

使用选择框f.collection_select,它会记住值,但不记得collection_radio_buttons

我的路线文件如下

路线

资源:帖子,如::条目

3 个答案:

答案 0 :(得分:0)

&LT p为H.;&LT;代码&GT; collection_radio_buttons&LT; /代码&GT;将自动设置所选值。 它从前两个参数中找到所选值。在您的示例中,它将查找&lt; code&gt; @ post.category_id&lt; / code&gt;无论从此方法返回什么值,它都将查找其值等于此值的相应单选按钮,并将该单选按钮设置为已选中。&lt; / p&gt; &lt; p&gt;请查看&lt; a href =&#34; http://apidock.com/rails/ActionView/Helpers/FormOptionsHelper/collection_radio_buttons#docs_body" rel =&#34; nofollow&#34;&gt; API DOCK&lt; / a&gt;完整的文件。 &LT; / p为H. &lt; p&gt;如果未设置正确的值,请确保&lt; code&gt; category_id&lt; / code&gt;已设置为&lt; code&gt;帖子&lt; / code&gt;你正在编辑&lt; / p&gt;

答案 1 :(得分:0)

我已经明白了。

这是因为我直接使用collection_radio_buttons而不是使用表单助手对象。

来自(不存储用户价值)

<%= collection_radio_buttons(:post, :category_id, Category.all, :id, :name) do |b| %>
  <div class="radio">
     <%= b.label do %>
       <%= b.radio_button + b.text %>
     <% end %>
  </div>
<% end %>

至(现在保存用户值)

# Using the form helper `f.collection_radio_buttons` 
# instead of `collection_radio_buttons`. 
# Also removed passing the object in as an argument

<%= f.collection_radio_buttons(:category_id, Category.all, :id, :name) do |b| %>
  <div class="radio">
     <%= b.label do %>
       <%= b.radio_button + b.text %>
     <% end %>
  </div>
<% end %>

我希望将来可以帮助任何人。

谢谢

答案 2 :(得分:-1)

这样就可以了。

<%= collection_radio_buttons(:post, :category_id, Category.all, :id, :name,{},{ checked: Category.first.id }) do |b| %>
  <div class="radio">
     <%= b.label do %>
       <%= b.radio_button + b.text %>
     <% end %>
  </div>
<% end %>