ruby-on-rails - Rails/Haml 错误 : undefined method `-@' for "":String

标签 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 中的字段。

最佳答案

你打错了,就在那里:

= 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

关于ruby-on-rails - Rails/Haml 错误 : undefined method `-@' for "":String,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18898842/

相关文章:

javascript - 无法让 if else 在 HAML javascript 中正常工作

ruby-on-rails - 如何在 rails 上安装 ruby

mysql - PG::Error : 结果已被清除 Rails 序列化

ruby - 从字符串中删除某些集合中存在的单词

ruby-on-rails - HAML 缩进问题

ruby-on-rails - cucumber + 测试 JS 警报

ruby-on-rails - 如何对 rails 中的列求和?

ruby - ruby 中的无效功能

ruby-on-rails - 当我需要 UTF-8 时,Rails 应用程序一直以 ASCII-8BIT 生成 View ?

ruby-on-rails - 简单的 Ruby on Rails 应用程序