如何使用 collection_select 在集合的每个元素中显示更多属性
How to show more attributes in each element of the collection with 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>
效果很好,因为它显示了我想要的 style_name 的所有舞蹈。但是我想区分两种舞蹈,并且还想在集合中的每支舞蹈旁边显示级别和日期,因为有许多舞蹈名称相同,风格相同!
请帮忙。使用简单的表单助手有更好的方法吗?
如讨论中所述,您需要在模型的 rb 文件中声明一个方法,如下所示:
def custom_name
"#{style.name}. #{date}"
end
并将:style_name
参数更改为:custom_name
我有这个简单的形式:
= 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>
效果很好,因为它显示了我想要的 style_name 的所有舞蹈。但是我想区分两种舞蹈,并且还想在集合中的每支舞蹈旁边显示级别和日期,因为有许多舞蹈名称相同,风格相同! 请帮忙。使用简单的表单助手有更好的方法吗?
如讨论中所述,您需要在模型的 rb 文件中声明一个方法,如下所示:
def custom_name
"#{style.name}. #{date}"
end
并将:style_name
参数更改为:custom_name