【问题标题】:How to use collection_check_boxes with checked attributes?如何使用带有选中属性的 collection_check_boxes?
【发布时间】:2017-11-30 00:29:23
【问题描述】:

我怎样才能让我的模型通过检查属性检查我的 collection_check_boxes 对象?

我把它作为我的复选框表单

<div class="form-group">
    <label><%= car_brand.name %></label>
    <% car_model_each_brand = return_car_model_by_brand(car_brand.id) %>
    <% car_checked_model = return_car_model_by_filter_brand(@selected_model,car_brand.id) %>
    <br>
    <% car_checked_model.each do |car_model_check| %>
        id:<%= car_model_check.id %>  <%= car_model_check.code_name %> ,
    <% end %>
    <br>
    <div class="checkbox">

        <%= collection_check_boxes(:car_insurance_object_model,
                                   :car_model_id,
                                   car_model_each_brand ,
                                   :id,:code_name,
                                   checked: car_checked_model) do |b|
             b.label { b.check_box + b.text }
        end %>

    </div>
</div>

原来是这样的

但是在 Alfa romeo 上,它应该在 156 上进行检查,而且 在奥迪上应该检查 a3。

那么我该如何解决这个问题? 谢谢!

【问题讨论】:

  • 那些看起来像风格化的复选框 - 您是否查看过 HTML 源代码并注意到 checked 属性确实在您希望它出现的位置缺失?另外,不传入checked: 属性的结果是什么? Rails 应该自动分配它,除非它需要你的后端有一些特定的逻辑。
  • 我已经添加了我的 HTML 源代码,所以它仍然没有被检查并且没有检查:属性?结果是一样的。

标签: ruby-on-rails ruby erb


【解决方案1】:

这个answer here 帮助了我。只需添加一个checked: true 作为check_box 的参数。所以在你的情况下,它看起来像这样:

<%= collection_check_boxes(:car_insurance_object_model,
  :car_model_id,
  car_model_each_brand ,
  :id,:code_name,
  checked: car_checked_model) do |b|
    b.label { b.check_box(checked: true) + b.text }
end %>

只要记住将 true 更改为将被评估为 truefalse 的任何其他表达式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多