目前我正在尝试将信息Feed限制为选项选择字段,以仅显示我选择的条件。使用下面的代码,这似乎正在起作用
= select("schedule", :selected_players, User.where(:team_id => current_user[:team_id]) { |p| [full_name(p), p.id] }, {:include_blank => 'None', :prompt => 'Add Players to Lineup'}, :multiple => "multiple")
问题是此代码显示的是数组字段类型,即#< User:0xa559830>。
如何让它显示实际的用户名?
答案 0 :(得分:0)
我建议以更大的分离和清晰度重写代码,而不是试图将它们全部放在一行中。永远不应该从视图中调用生成SQL的模型方法。
在控制器中:
@players = User.where(:team_id => current_user[:team_id]).all
在视图中:
= select :schedule, :selected_players, @players.map {|p| [full_name(p), p.id] }, {:include_blank => true}...
我认为您的代码中的原始错误似乎是您在没有迭代器(where
)的each
方法之后调用了一个块。