2016-04-06 11 views
2

私はあまりよく知られていないコードベース、特にHamlで作業しています。私は、ユーザーを選択するために選択ドロップダウンを設定する必要があります。コレクション用のRailsフォームセレクトの設定方法

I持って私のコントローラで、次のコード:

def edit 
    @franchise = Franchise.find params[:id] 
    @ab_reps = User.where role: "admin-ab" 
    authorize! :update, @franchise 
end 

I持って自分のフォームに次のコード(つまり、現在は動作しません):

= f.select :ab_rep, options_for_select(@ab_reps, f.object.ab_rep), {prompt: "AB Representative"}, {label: false, right_class: "col-sm-10", class: "ab-rep-field"} 

カップルの質問:

1.)@ab_repsはユーザオブジェクトの配列です。私は選択がユーザー名の代わりに、(それが現在ありません)ユーザーオブジェクトを表示するために取得するにはどうすればよい

def name 
[first_name, last_name].compact.join(" ") 
end 

:私は私のユーザモデルでは、以下の方法がありますか?

2.)私の現在の設定は正しいのでしょうか?

ありがとうございました!

答えて

2

あなたは近くにいるので、オプション値とオプションテキストのためのメソッドと、あなたのケースでは@ab_repsであるコレクションを提供する必要があります。さらに、プロンプトのためのハッシュと、実行したクラス名などのhtml_optionsを提供することができます。

Railsにはoptions_from_collection_for_selectなどの選択タグで使用できるいくつかのヘルパーがあります。私は頻繁にcollection_selectを使用しました。http://apidock.com/rails/ActionView/Helpers/FormOptionsHelper/collection_select

= f.collection_select :ab_rep, @ab_reps, :id, :name, {prompt: "AB Representative"} 
+0

ありがとうございました! –

関連する問題