2012-03-05 18 views
7

estoy usandoextra para un Rieles collection_select

f.collection_select :country_id, Country.all, :id, :name) 

cuales genera

<select name="user[country_id]" id="user_country_id">  
<option value="1">Canada</option> 
<option value="2">United Kingdom</option> 
<option value="3" >United States</option> 
</select> 

me gustaría incluir un prov-val y el atributo de código-val al selecto por lo que puede actualizar dinámicamente las etiquetas provincia:

<select name="user[country_id]" id="user_country_id">  
<option prov-val="Province/Territory" code-val="Postal Code" value="1">Canada</option> 
<option prov-val="County" code-val="Postcode" value="158">United Kingdom</option> 
<option prov-val="State" code-val="ZIP Code" value="2" >United States</option> 

¿Es esto posible usando un collection_select?

+0

posible duplicado del [procedimiento collection_select ayudante de Rails y la opción 'Crear elemento' al final] (http://stackoverflow.com/questions/699165/rails-collection-select-helper-method-and-the-create-item-option-at-the-end) –

+0

Disculpas He enviado la pregunta con un título incorrecto ya que utilicé la pregunta anterior como plantilla. – patrickandroid

Respuesta

10

No estoy seguro si es posible utilizando collection_select, pero creo que el uso de selección hace lo que quiere:

<%= f.select :country_id, Country.all.map {|c| [c.name, c.id, {:'prov-val' => c.prov_val, :'code-val' => c.code_val}]} %> 

Esto supone que el objeto país tiene el prov_val y campos code_val.

+0

Gracias, lo he conseguido agregando un ayudante options_for_select_with_attributes de: http://railsforum.com/viewtopic.php?id=38624 <% = f.select: country_id, options_for_select_with_attributes (Country.all.map {| c | [c .name, c.id, {: 'prov-val' => c.prov_val,: 'code-val' => c.code_val}]})%> – patrickandroid

3

No debe llamar al modelo directamente desde la vista.

Es mejor utilizar una variable de instancia en su lugar:

<%= f.select :country_id, @countries.map {|c| 
    [c.name, c.id, {:'prov-val' => c.prov_val, :'code-val' => c.code_val}] 
} %> 
Cuestiones relacionadas