我在这里有一个select
字段,其中我有一个定义的字符串作为选项,另一个是从@reps
对象映射的
它一直在说undefined method 'map' for nil class
片段:
= f.select :representative, [@reps.map{|me| [me.select_name, me.id]},["Other"]], :autofocus => true
任何解决方法将不胜感激
我在这里有一个select
字段,其中我有一个定义的字符串作为选项,另一个是从@reps
对象映射的
它一直在说undefined method 'map' for nil class
片段:
= f.select :representative, [@reps.map{|me| [me.select_name, me.id]},["Other"]], :autofocus => true
任何解决方法将不胜感激
首先,您需要确保 @reps 不为零。您可以签入控制器以将其设置为空数组[]
,以防它在渲染之前为零。
其次,您需要正确合并数组并保持结构完整。附加选项还需要一个(空)ID。
@reps.map{|me| [me.select_name, me.id]} << ['Other','']
# [ ['repsname1', 1], ['repsname2', 2], ['Other', ''] ]
使用您的方法,您的对象将如下所示,这不是您想要的
[ [['repsname1', 1], ['repsname2', 2]], ['Other'] ]
尝试使用
= f.select :representative, [@reps.map{|me| [me.select_name, me.id]},["Other", '']], :autofocus => true