我的countries
模型中有Foo
哈希值:
def self.available_countries
{:au => 'Australia',:dk => 'Denmark',:en =>'England', :fr => 'France', :my => 'Malasyia',:nz => 'New Zealand'}
end
通过下面的表单,我从country
对象中选择foo
并保存:
<form action="save_foo" method="post">
<!-- some text boxes -->
<label for="config-country">Country</label>
<select name="country" id="config_country">
<% Foo.available_countries.each do |code, country| %>
<option value="<%= code =%>"><%= country =%></option>
<% end %>
</select>
<input type="submit" value="Save" />
</form>
保存表单后,我想通过编辑表单编辑保存的记录:
<form action="edit_foo" method="post">
<!-- some text boxes -->
<select id="config_country" name="country">
<% Foo.available_countries.each do |code,cont|%>
<% if @foo.country.eql? code %>
<option value="<% code %>" selected><%= cont =%></option>
<% else %>
<option value="<% code %>"><%= cont =%></option>
<% end %>
<% end %>
</select>
<input type="submit" value="Update" />
</form>
但是现在无法动态选择已保存的country
..意味着它只是默认显示下拉框。
例如,我选择Denmark
并保存表单,当我尝试编辑记录时Australia
被选中,因为它是第一个元素..但这应该是Denmark
select box
有什么问题?感谢。
答案 0 :(得分:0)
我猜你在这里用符号比较一个符号:
<% if @foo.country.eql? code %>
第一种形式呈现:
<option value="au">Australia</option>
所以你可能会保存一个字符串。
将<% if @foo.country.eql? code %>
更改为<% if @foo.country.eql? code.to_s %>