1

我有一个 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.

4

1 回答 1

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
于 2013-09-19T15:31:54.897 回答