我一直在按照本教程来设置一个简单的标记系统:http://www.sitepoint.com/save-multiple-checkbox-values-database-rails/
唯一的问题是我的专业知识模型上的"名称"被用作 .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.name 而不是 b.label(名称是专业知识模型上的一个属性),但当我这样做时,它会拉出一个错误。
有什么建议吗?我只是想获取专业知识模型的每个实例的"名称"文本,而不是在整个 html 元素中提供。
引自:http://apidock.com/rails/v4.0.2/ActionView/Helpers/FormOptionsHelper/collection_check_boxes
还有三种特殊方法可用:
object
、text
和value
。
我想b.text
或b.value
就是你要找的。