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

問題は、このコードが配列フィールド タイプ、つまり #<User:0xa559830> を表示していることです。

実際のユーザー名を表示するにはどうすればよいですか?

4

1 に答える 1

0

すべてを 1 行に収めようとするのではなく、コードをより分離して明確に書き直すことをお勧めします。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) なしでメソッドの後にブロックを呼び出していたようです。

于 2012-08-09T12:34:17.773 に答える