我有一个用于Rails应用程序的Haml模板,该应用程序在生产中始终遇到此错误,但从未进行过开发。
我的模板开头是这样的:
= simple_form_for :foo, url: { action: :update }, method: :patch do |f|
= f.simple_fields_for :arr_field2 do |f_field_arr| -# create an array
= f.error_notification
.padded
- @foo.arr_field.each_with_index do |item, i|
.control-group
...
我得到的错误是:
NoMethodError: undefined method `-@' for "":String
错误消息声明问题出在模板的第3行,但是当我删除
时 = f.error_notification
错误仍然存在,仍然声称问题是第3行。有没有人碰到类似的东西?
为了给出一些上下文,@foo
存在(我已经检查过),并且有一个字符串数组(arr_field
)。表单的要点是让用户设置其他字段(arr_field2
)以匹配arr_field
中的字段。
答案 0 :(得分:3)
你有一个错字,就在那里:
= simple_form_for :foo, url: { action: :update }, method: :patch do |f|
= f.simple_fields_for :arr_field2 do |f_field_arr| -# create an array
^
# right here
此破折号应位于注释标记之后,不得由Ruby解释:
= simple_form_for :foo, url: { action: :update }, method: :patch do |f|
= f.simple_fields_for :arr_field2 do |f_field_arr| #- create an array