2

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?谢谢。

4

1 回答 1

0

我猜您在这里将符号与字符串进行比较:

<% if @foo.country.eql? code %>

第一种形式呈现:

<option value="au">Australia</option>

所以你可能会保存一个字符串。

更改<% if @foo.country.eql? code %><% if @foo.country.eql? code.to_s %>

于 2013-06-07T10:02:50.990 回答