0

ビューファイルにあるものは次のとおりです。

<% users = {'John Doe' => 1, 'Jane Doe' => 2} %>
<% admins = [1,2,nil] %> 

<% i = 1 %>
<% admins.each do |user_id| %>
  <% org_struc_order = 'admin' + i.to_s %>
  <% org_struc_order_text =  'Admin ' + i.to_s%>
  <% if user_id %>
    <%= 'Current selection for ' + org_struc_order_text + ' is '+ users.key(user_id) %>
    <%= select( 'org_selections', org_struc_order, users, {:selected => users.key(user_id)}, { :include_blank => true } ) %>
  <% else %>
    <%= 'Select ' + org_struc_order_text + ' from dropdown' %>
    <%= select( 'org_selections', org_struc_order, users, { :include_blank => true } ) %>
  <% end %>
  <% i = i + 1 %>
<% end %>

これは部分的に機能しています。フォームが表示されると、同じ値「John Doe」が 1 番目と 2 番目の選択ドロップダウン ボックスに表示されますが、その上のキャプションは正しいです。最初のボックスの上には、次のように書かれています。

Current selection for Admin 1 is John Doe

そして選択ボックス、私は持っています:

John Doe

2 番目のボックスの上には、次のように書かれています。

Current selection for Admin 2 is Jane Doe

しかし、選択ボックスには次のように表示されます。

John Doe 

どうしたの?

4

1 に答える 1

2

この行の問題だと思いますが、

<%= select( 'org_selections', org_struc_order, users, {:selected => users.key(user_id)}, { :include_blank => true } ) %>

修正したもの:

<%= select( 'org_selections', org_struc_order, users, {:selected => user_id}, { :include_blank => true } ) %>

選択した値の user_id の代わりにユーザー名を渡しています。

于 2012-07-12T05:28:13.893 に答える