Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何为集合设置Rails表单选择_Ruby On Rails - Fatal编程技术网

Ruby on rails 如何为集合设置Rails表单选择

Ruby on rails 如何为集合设置Rails表单选择,ruby-on-rails,Ruby On Rails,我在一个我不太熟悉的代码库上工作,特别是Haml。我需要设置一个选择下拉列表来选择用户 我的控制器中有以下代码: def edit @franchise = Franchise.find params[:id] @ab_reps = User.where role: "admin-ab" authorize! :update, @franchise end 我的表单中有以下代码(目前不起作用): 两个问题: 1.@ab_reps是一个用户对象数组。我的用户模型中有以下方法: def

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

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

def edit
  @franchise = Franchise.find params[:id]
  @ab_reps = User.where role: "admin-ab"
  authorize! :update, @franchise
end
我的表单中有以下代码(目前不起作用):

两个问题:

1.@ab_reps是一个用户对象数组。我的用户模型中有以下方法:

def name
 [first_name, last_name].compact.join(" ")
end
如何让select显示用户名,而不是用户对象(当前是这样的)

2.)我当前的设置是否接近正确


谢谢你的帮助

如果接近,则需要提供选项值和选项文本的方法,以及在您的情况下为@ab_reps的集合。此外,您还可以为提示和html_选项(如类名)提供哈希,您已经完成了这项工作

Rails有一些不同的帮助程序,您可以用于选择标记,包括来自\u集合\u的选项\u用于选择。我经常使用collection_select

def name
 [first_name, last_name].compact.join(" ")
end
= f.collection_select :ab_rep, @ab_reps, :id, :name, {prompt: "AB Representative"}