2012-02-27 49 views
1

我在的form_for選擇列表正在奇怪:如何顯示哈希中的選擇列表?

<select id="user_user_status" name="user[user_status]"> 
<option value="#&lt;UserType:0x007fcfb49bfee8&gt;">7</option> 
.. 
.. 
</select> 

我有我創建像哈希:

UserStatus.all.each do |u| 
    USER_STATUS_BY_ID[u.id.to_i] = u 
end 

然後,我創建了像的form_for在我的選擇列表:

<%= f.select :user_status, USER_STATUS_BY_ID.each {|k,v| [k, v.name]} %> 

value.name似乎不是呈現名稱,而是整個對象看起來像?

我期待已名ouputted ...

+0

'each'返回您迭代的集合。 – 2012-02-27 05:00:28

回答

1

嘗試以下操作來代替:

<%= f.collection_select :user_status, UserStatus.all, :id, :name %> 

更新:如果你想使用的哈希,它看起來像你需要一張地圖,而不是一個每個:

USER_STATUS_BY_ID.map {|k,v| [k, v.name]} 
+0

但我想使用我的散列,而不是模型。 – Blankman 2012-02-27 04:30:57

+0

更新了我的回覆。 :) – clemensp 2012-02-27 04:37:37