Rails 表单(复选框)- 在不使用 f.label 的情况下从关联模型获取名称属性

Rails forms (checkboxes) - get a name attribute from an associated model without using f.label

我一直在按照本教程设置一个简单的标记系统:http://www.sitepoint.com/save-multiple-checkbox-values-database-rails/

唯一的问题是我的 Expertise 模型上的 'name' 被用作 .yml 文件中的键(标签将被翻译成各种语言)。

专业知识模型与表单模型(在本例中为教师模型)的关系是相互的'has_and_belongs_to_many'

复选框的表单如下所示。

<%= form_for(@teacher, :html => {multipart: true, :class => "sky-form"}) do |f| %>
...

  <span>Areas of expertise:</span>
  <%= f.collection_check_boxes :expertise_ids, Expertise.all, :id, :name do |b| %>
    <label class="checkbox">
      <%= b.check_box %> <i></i> <%= b.label %>
    </label>
  <% end %>
...

<% end %>

而不是 b.label 我想做 b.name (名称是 Expertise 模型上的一个属性)但是当我这样做时,它会出现错误。

有什么建议吗?我只是想获取 Expertise 模型的每个实例的 'name' 文本,而不是它在整个 html 元素中提供。

引用自:http://apidock.com/rails/v4.0.2/ActionView/Helpers/FormOptionsHelper/collection_check_boxes

There are also three special methods available: object, text and value.

我想 b.textb.value 就是您要查找的内容。