ruby-on-rails forms model simple-form

ruby on rails - Campo de selección de asociación personalizada de Rails Simple Form



ruby-on-rails forms (1)

Use el asistente de formulario de Rails select() , envuelto por una entrada de SimpleForm.

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

Su código no funciona como se esperaba porque, bajo el capó, SimpleForm llama a collection_select() que no admite atributos adicionales en las etiquetas de opción.

El archivo readme de SimpleForm también tiene la solution . Pero no me di cuenta de eso hasta que resolví el problema yo mismo :)

Tengo un campo de selección y quiero poner un atributo personalizado llamado nombre, traté de hacerlo así:

<%= f.association :in_charge, :collection => User.lawyer.map{ |l| [l.name, l.id, {:name => l.name.downcase}] } %>

Funciona y genera el atributo adicional, pero hay un problema, el atributo de valor de selección se cambia al atributo de nombre de modelo, en este caso l.name. Cambié de lugar y puse l.id primero, pero se muestra el atributo id, se duplican, ¿alguna idea de por qué sucede eso?

¿Hay otra forma de definir atributos personalizados en los campos de selección de asociaciones?