如何使用collection_select在集合的每个元素中显示更多属性

时间:2016-10-14 23:22:12

标签: ruby-on-rails simple-form collection-select

我有简单的形式:

= simple_form_for(Note.new, remote: true) do |f|       
  = f.collection_select :dance_id, current_user.dances.includes(:style).all,     
   :id, :style_name, {prompt: "Please select dance"}, {class: "form-control"}

生成代码:

<select class="form-control" name="note[dance_id]" id="note_dance_id">
    <option value="">Please select dance</option> 
    <option value="39">Adowa Dance (Ghana)</option> 
    <option value="38">Adowa Dance (Ghana)</option> 
    <option value="37">Tango (Argentina)</option>
</select>

工作正常,因为它按照我想要的方式显示所有舞蹈。但是我想在两个舞蹈之间做出改变,并且想要在集合中的每个舞蹈旁边显示水平和日期,因为有许多相同名称的同一个bc的舞蹈是相同的! 请帮忙。用简单的表单助手做任何更好的方法吗?

1 个答案:

答案 0 :(得分:0)

如讨论中所述,您需要在模型的rb文件中声明一个方法,如下所示:

def custom_name
"#{style.name}. #{date}"
end

并将:style_name参数更改为:custom_name