2012-06-11 22 views
16

Tengo un campo de selección y quiero poner un atributo personalizado al que llamó el nombre, yo tratamos de hacerlo así:rieles Forma simple asociación de encargo de selección de campo

<%= 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.nombre. Cambié los lugares y puse l.id primero, pero se muestra el atributo id, se duplican, ¿hay alguna idea de por qué sucede eso?

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

Respuesta

24

Utilice el ayudante de formulario Rails select(), envuelto por una entrada 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, ya que, bajo el capó, SimpleForm llama collection_select() que no soporta atributos adicionales en las etiquetas de opción.

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

Cuestiones relacionadas