Ruby on rails Rails集合中的多个列名/自定义标签\u复选框
我在Rails中为提供了一个Ruby on rails Rails集合中的多个列名/自定义标签\u复选框,ruby-on-rails,ruby-on-rails-4,Ruby On Rails,Ruby On Rails 4,我在Rails中为提供了一个表单,\u,它使用集合\u复选框方法对列为复选框的零件数组进行处理。我希望复选框的标签是两种方法的组合,以便每个零件的复选框都标有其名称和SKU编号: 我的表格代码: <%= collection_check_boxes(:service, :part_ids, @parts_list, :id, :sku, {}, {checked: true}) %> <%= collection_check_boxes(:service, :part_ids
表单,\u,它使用集合\u复选框
方法对列为复选框的零件数组进行处理。我希望复选框的标签是两种方法的组合,以便每个零件的复选框都标有其名称和SKU编号:
我的表格代码:
<%= collection_check_boxes(:service, :part_ids, @parts_list, :id, :sku, {}, {checked: true}) %>
<%= collection_check_boxes(:service, :part_ids, @parts_list, :id, :sku, {}, {checked: true}) do |b|
b.label { b.check_box + b.object.name + " " + b.object.sku}
end %>
这非常适合创建复选框列表。但是每个标签都只是:sku
,因为我只能为标签传递一个方法。有人知道如何为这些标签创建自定义标签吗?我已经阅读了api文档,其中提到使用ado | b |。。。结束
块,但没有解释如何使用它或为什么。以下是修改后的表单代码:
<%= collection_check_boxes(:service, :part_ids, @parts_list, :id, :sku, {}, {checked: true}) %>
<%= collection_check_boxes(:service, :part_ids, @parts_list, :id, :sku, {}, {checked: true}) do |b|
b.label { b.check_box + b.object.name + " " + b.object.sku}
end %>
注意:
b.object.name
#####假设name
是模型中的字段名
b.object.sku
####替换为b.object.sku.to_
如果sku
是数字字段。您可以在模型中定义自定义字段:
def cb_label
"#{name} #{sku}"
end
收藏中
<%= collection_check_boxes(:service, :part_ids, @parts_list, :id, :cb_label, {}, {checked: true}) %>
Kirti的答案对我的问题来说是正确的,不过在我得到答案之前,我想尝试一下上面的alias方法,而且效果也不错。如果我在很多不同的地方调用名称/sku组合,我会使用您的答案,因为这样更容易。因此,投票结果是一致的。