2012-08-09 56 views
0

目前我想限制信息饲料到选项选择字段,只显示我选择的标准。与低于该代码似乎是工作导轨选择,与限制查询

= 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") 

的问题是,此代码显示的阵列字段类型即#<用户:0xa559830>。

我如何获取它以显示实际的用户名?

回答

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方法实施后的块没有一个iterator (each)。

+0

此代码现在给我'未定义的方法'映射'为零:NilClass' – 2012-08-09 13:00:26

+0

可能有任何数量的原因。来自控制器的其他实例变量是否可用并正确传递? – 2012-08-09 13:04:25

+0

嗨安德鲁,在我的控制器中有2个其他实例变量在我的控制器中工作之前,在添加这个问题之前 – 2012-08-09 13:18:50