首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >单个simple_form单选按钮

单个simple_form单选按钮
EN

Stack Overflow用户
提问于 2016-03-17 05:08:14
回答 2查看 3.1K关注 0票数 3

我正在使用带有Rails 4的SimpleForm 3.2.1。我正在尝试将rails表单转换为simple_form。下面是使用常规rails表单的单选按钮的代码:

代码语言:javascript
运行
复制
  <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:

代码语言:javascript
运行
复制
  <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 -->

然而,当我在浏览器中打开页面时,我得到了错误:

代码语言:javascript
运行
复制
No input found for radio

如何让此表单开始使用simple_form?

EN

回答 2

Stack Overflow用户

发布于 2016-03-17 10:27:32

根据SimpleForm source code的说法,它没有默认的radio输入。

这个gem的文档建议了几种使用单选按钮的方法:

  1. <%= f.input :plan, as: :radio_buttons %>
  2. <%= f.input :plan, as: :boolean %> (带一些额外的值句柄)
  3. 你可以编写你自己的自定义输入,f.e.命名为radio并将其放入文件夹app/inputs中。Read more about custom inputs
票数 2
EN

Stack Overflow用户

发布于 2017-07-06 10:50:06

使用常规的rails助手并没有什么问题。如果您想要一致的包装器,您可以将它们嵌套在输入中。它可能看起来像这样

代码语言:javascript
运行
复制
= 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

当然,如果不需要太多的自定义,也可以使用集合

代码语言:javascript
运行
复制
= f.input :plan_id, collection: @organization_plans.pluck(:id, :description), as: :radio_buttons, label: false
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36046958

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档