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)
我没有发现为什么会发生这种情况.请帮忙.
该方法是否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 的一部分)可能会在没有适当间距的情况下进行一些字符串连接,或者异常回溯未指向正确的代码行。
希望这可以帮助。
| 归档时间: |
|
| 查看次数: |
649 次 |
| 最近记录: |