2012-02-27 56 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

相关问题