Добавление дополнительных html-атрибутов в коллекцию Rails - PullRequest
7 голосов
/ 06 марта 2012

Я использую

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

, который генерирует

<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>

Я хотел бы включить атрибут prov-val и code-val для выбора, чтобы я мог динамически обновлятьметки провинций:

<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>

Возможно ли это с помощью collection_select?

Ответы [ 2 ]

10 голосов
/ 06 марта 2012

Не уверен, возможно ли использование collection_select, но я думаю, что использование select делает то, что вы хотите:

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

Предполагается, что объект вашей страны имеет поля prov_val и code_val.

3 голосов
/ 09 октября 2013

Вы не должны вызывать модель прямо из вида.

Вместо этого лучше использовать переменную экземпляра:

<%= f.select :country_id, @countries.map {|c| 
  [c.name, c.id, {:'prov-val' => c.prov_val, :'code-val' => c.code_val}]
} %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...