Ruby on Rails:.constantize:错误的常量名称错误?
我正在使用这个:
4.times { |i| assert_not_equal("content#{i + 2}".constantize, object.first_content) }
并且我之前已经声明了局部变量
content1
content2
content3
content4
content5
,我得到的错误
NameError: wrong constant name content2
是什么意思?我很确定我想要 content2 =\
I'm using this:
4.times { |i| assert_not_equal("content#{i + 2}".constantize, object.first_content) }
and i have previously declared local variables
content1
content2
content3
content4
content5
the error I get
NameError: wrong constant name content2
Whot does this error mean? I'm pretty sure that I want content2 =\
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您必须使用大字母来调用 ruby 常量:
Content2
而不是content2
。链接
应该注意的是,没有这样的东西常量变量,但常量值。
You have to call ruby constants with a big letter:
Content2
instead ofcontent2
.Link
It should be noted though that there is no such thing as constant variables, but constant values.
请用户 eval("content#{i + 2}")
请注意,eval 很危险:-)
Can you please user eval("content#{i + 2}")
Note that eval is dangerous though :-)