Rails简单表单自定义关联选择字段

我有一个select字段,我想在其中放一个名为name的自定义属性,我试着这样做:

 User.lawyer.map{ |l| [l.name, l.id, {:name => l.name.downcase}] } %> 

它工作并生成额外的属性,但是有一个问题,选择值属性被更改为模型名称属性,在本例中为l.name。 我更改了地方并首先放置了l.id但是显示了id属性,它们是重复的,任何想法为什么会发生这种情况?

是否有另一种方法可以在关联选择字段中定义自定义属性?

使用Rails select()表单助手,由SimpleForm输入包装。

  <%= f.input :in_charge do %> <%= f.select :county_id, User.lawyer.map{ |l| [l.name, l.id, {:name => l.name.downcase}] } %> <% end %> 

您的代码无法按预期工作,因为在引擎盖下,SimpleForm调用collection_select() ,它不支持选项标记中的额外属性。

SimpleForm自述文件也有解决方案 。 但我没注意到,直到我自己解决了这个问题:)