Rails / Haml错误:未定义的方法` - @'for“”:String

时间:2013-09-19 15:26:38

标签: ruby-on-rails ruby haml

我有一个用于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中的字段。

1 个答案:

答案 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