如何设置Rails表单选择集合

时间:2016-04-06 21:02:49

标签: ruby-on-rails

我正在开发一个我不熟悉的代码库,特别是Haml。我需要设置一个选择下拉列表来选择用户。

我的控制器中有以下代码:

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

我的表单中有以下代码(目前无效):

= 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。)@ abjps是一组用户对象。我的用户模型中有以下方法:

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

如何让select显示用户名而不是用户对象(目前用户名)?

2。)我目前的设置是否接近正确?

感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

您已经关闭了,您需要提供选项值和选项文本的方法,以及在您的情况下为@ab_reps的集合。此外,您可以为提示和html_options(例如您已完成的类名)提供哈希。

Rails有一些不同的助手可以用于select标签,包括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"}