0

我在这里有一个select字段,其中我有一个定义的字符串作为选项,另一个是从@reps对象映射的

它一直在说undefined method 'map' for nil class

片段:

= f.select :representative, [@reps.map{|me| [me.select_name, me.id]},["Other"]], :autofocus => true

任何解决方法将不胜感激

4

2 回答 2

1

首先,您需要确保 @reps 不为零。您可以签入控制器以将其设置为空数组[],以防它在渲染之前为零。

其次,您需要正确合并数组并保持结构完整。附加选项还需要一个(空)ID。

@reps.map{|me| [me.select_name, me.id]} << ['Other','']
#     [ ['repsname1', 1], ['repsname2', 2], ['Other', ''] ]

使用您的方法,您的对象将如下所示,这不是您想要的

[ [['repsname1', 1], ['repsname2', 2]], ['Other'] ]
于 2013-09-12T10:59:00.800 回答
0

尝试使用

= f.select :representative, [@reps.map{|me| [me.select_name, me.id]},["Other", '']], :autofocus => true
于 2013-09-12T10:59:10.937 回答