ruby on rails-如何显示单选按钮集合的检查值



关于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

我的路线文件如下

路线

resources:posts,as::entries

我已经想通了。

这是因为我直接使用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 %>

我希望这对将来的任何人都有帮助。

感谢

collection_radio_buttons将自动设置所选值。它从前两个参数中查找选定的值。就像在您的示例中一样,它将查找@post.category_id,无论从该方法返回什么值,它都将查找值等于该值的相应单选按钮,并将该单选按钮设置为选中。

请查看API DOCK以获取完整的文档。

如果没有设置正确的值,请确保为正在编辑的post设置了category_id

这样就可以了。

<%= 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 %>

最新更新