2011-11-25 2 views
1

Я новичок на ror.выбрать тег опции в ror?

вариант выбора тега в рельсах

<%= select_tag(:city_id, '<option value="1">Lisbon</option>,<option value="2">Madrid</option>' %> 

производит этот HTML:

<select id="city_id" name="city_id"> 
    <option value="1">Lisbon</option> 
<option value="2">hjkLisbon</option> 
</select> 

и выбора опции тег

<%= select_tag(:city_id, options_for_select([['Lisbon', 1], ['Madrid', 2]])) %> 

производит этот HTML:

<select id="city_id" name="city_id"> 
<option value="1">Lisbon</option> 
<option value="2">Madrid</option> 
</select> 

для второго варианта выберите тег, я получаю раскрывающееся меню с параметрами, но вначале я его не получаю, только раскрывающееся меню находится в первом, но нет параметров. Может кто-нибудь объяснить мне, почему это так?

ответ

2

Если у вас есть только эти два города, которые вы можете использовать обычный HTML

<select id="city_id" name="city_id"> 
<option value="1">Lisbon</option> 
<option value="2">Madrid</option> 
</select> 

Если вы запрашиваете города из вас баз данных вы можете сделать

select_tag ‘city_id’, options_for_select(@cities.collect{ |u| [u.name, u.id] }) 

Это создаст что-то вроде:

<select id="city_id" name="city_id"> 
    <option value="1">Lisbon</option> 
    <option value="2">Madrid</option> 
</select> 

Не бойтесь использовать html. Самое простое решение - лучшее решение.

+0

как я новичок в рельсах, поэтому я хотел знать, почему первый код не работает, даже при том, что он создает тот же html. –

+0

Рельсы методы действительно spesific о том, как вы проходите в вариантах. select_tag - метод рельсов. Первый способ отправки параметров методу select_tag неверен. –

0

Ref this

Изменить

<%= select_tag(:city_id, '<option value="1">Lisbon</option>,<option value="2">Madrid</option>' %> 

Для

<%= select_tag(:city_id, '<option value="1">Lisbon</option>,<option value="2">Madrid</option>') %> 

Вы не загораживая выберите тег т.е. ) отсутствует

-1

, если вы действительно хотите, чтобы держать выбрали страну имя на странице редактирования, затем ..

<%= f.select :country, (country_name), :selected => @model.country %> 

Где country_name - это метод в помощнике.

Смежные вопросы