Rails生产环境随周期而中断

Lee*_*lla 5 haml ruby-on-rails

有一个使用HAML的rails应用程序(3.0.9),本地开发服务器运行正常.但是当我运行rails s -e production时,我的页面会出现这个错误:

NoMethodError: undefined method `+@' for #<String:0x00000006331098>
Run Code Online (Sandbox Code Playgroud)

错误说它在这一行(从视图,用HAML编写):

%tr{:class=> cycle("even","odd")}
Run Code Online (Sandbox Code Playgroud)

我没有发现为什么会发生这种情况.请帮忙.

bra*_*ana 1

该方法是否cycle执行任何类型的字符串连接?

我最近在代码审查期间遇到了这个错误。

代码是这样的:

anObject.instance_method +string_var

返回instance_method一个字符串,该字符串将附加到变量中存在的字符串值string_var

将代码更改为此有效

anObject.instance_method + string_var # 注意+后面的空格

如果没有空格,unary +则会在 string_var 上调用该方法,但不会unary +在 String 类上定义任何方法。因此例外。

请注意,该unary +方法被定义为def +@,因此异常消息显示“+@找不到方法”。

这个要点很清楚: https: //gist.github.com/1145457

无论如何,在您的情况下,该方法cycle(不知道它是由您定义的还是 gem 的一部分)可能会在没有适当间距的情况下进行一些字符串连接,或者异常回溯未指向正确的代码行。

希望这可以帮助。