我是ror的新人。
选项选择rails中的标签
<%= 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>
对于第二个选项选择标签我正在获得带有选项的下拉列表但是在第一个我没有得到它,只有下拉列表在第一个但没有选项。 任何人都可以解释一下为什么会这样吗?
答案 0 :(得分: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。最简单的解决方案是最佳解决方案。
答案 1 :(得分:0)
参考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>') %>
您没有关闭选择标记,即)
缺少
答案 2 :(得分:-1)
如果您真的想在编辑页面上选择国家名称,那么..
<%= f.select :country, (country_name), :selected => @model.country %>
其中country_name
是帮助程序中的方法。