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

Ruby on rails Rails简单表单自定义关联选择字段,ruby-on-rails,forms,model,simple-form,Ruby On Rails,Forms,Model,Simple Form,我有一个select字段,我想在其上放置一个名为name的自定义属性,我尝试这样做: <%= f.association :in_charge, :collection => User.lawyer.map{ |l| [l.name, l.id, {:name => l.name.downcase}] } %> User.lawyer.map{l|[l.name,l.id,{:name=>l.name.downcase}]}%> 它可以工作并生成额外属性,

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

 <%= f.association  :in_charge, :collection => User.lawyer.map{ |l| [l.name, l.id, {:name => l.name.downcase}] } %>    
User.lawyer.map{l|[l.name,l.id,{:name=>l.name.downcase}]}%>
它可以工作并生成额外属性,但有一个问题,选择值属性被更改为model name属性,在本例中为l.name。我改变了位置,把l.id放在第一位,但是id属性被显示,它们被复制了,你知道为什么会这样吗

是否有其他方法在关联选择字段中定义自定义属性?

使用Rails表单帮助程序,由SimpleForm输入包装

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

l、 name.downcase}]}%>
您的代码无法按预期工作,因为在后台,SimpleForm调用不支持选项标记中的额外属性


SimpleForm自述文件也具有相同的功能。但我没有注意到,直到我自己解决了这个问题:)

对于记录,这似乎现在起作用了:

f.association :product, collection: Product.all.map { |product| [product.name, product.id, {data: {description: product.description}}] }
SimpleForm版本:

$ bundle show simple_form
/Users/josh/.rvm/gems/ruby-2.4.1@a4aa2/gems/simple_form-4.1.0