我正在使用带有Rails 4的SimpleForm 3.2.1。我正在尝试将rails表单转换为simple_form。以下是适用于具有常规轨道形式的单选按钮的代码:
<ul class="list-radios list-multiplier">
<% @organization_plans.each_with_index do |plan, index| %>
<li>
<div class="radio custom-radio">
<%= f.radio_button :plan_id, plan.id, id: "field-rad#{index}", data: {price: plan.total_price} %>
<label class="form-label" for='field-rad<%= index %>'>
<span></span>
<%= plan.description %>
</label>
</div><!-- /.radio -->
</li>
<% end %>
</ul><!-- /.list-radios -->
我尝试使用以下代码将其转换为SimpleForm:
<ul class="list-radios list-multiplier">
<% @organization_plans.each_with_index do |plan, index| %>
<li>
<div class="radio custom-radio">
<%= f.input :plan_id, value: plan.id, input_html: {id: "field-rad#{index}"}, data: {price: plan.total_price}, label: false, as: :radio %>
<label class="form-label" for='field-rad<%= index %>'>
<span></span>
<%= plan.description %>
</label>
</div><!-- /.radio -->
</li>
<% end %>
</ul><!-- /.list-radios -->
然而,当我在浏览器中打开页面时,我收到错误:
No input found for radio
如何让此表单开始使用simple_form?
答案 0 :(得分:2)
根据SimpleForm source code,它没有默认radio
输入。
此gem的文档提供了几种使用单选按钮的方法:
<%= f.input :plan, as: :radio_buttons %>
<%= f.input :plan, as: :boolean %>
(带一些额外的值句柄)radio
并放入文件夹app / inputs。 Read more about custom inputs 答案 1 :(得分:1)
使用常规导轨助手没有任何问题。如果您喜欢一致的包装器,可以将它们嵌套在输入中。它看起来像
= f.input :plan_id, label: false do
ul
- @organization_plans.each do |plan|
li
= f.radio_button :plan_id, plan.id
= f.label :plan_id, plan.description, value: plan.id
当然,如果您不需要太多的自定义,也可以使用该系列
= f.input :plan_id, collection: @organization_plans.pluck(:id, :description), as: :radio_buttons, label: false