Ruby on rails Rails集合中的多个列名/自定义标签\u复选框

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

我在Rails中为提供了一个
表单,\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文档,其中提到使用a
do | 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组合,我会使用您的答案,因为这样更容易。因此,投票结果是一致的。