Ruby on Rails:.constantize:错误的常量名称错误?

发布于 2024-11-16 15:27:19 字数 337 浏览 0 评论 0原文

我正在使用这个:

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

烟酉 2024-11-23 15:27:19

您必须使用大字母来调用 ruby​​ 常量:

Content2 而不是 content2

常量名称以大写字母开头,后跟名称字符。类名和模块名是常量,并遵循常量命名约定。按照惯例,常量变量通常使用大写字母和下划线拼写。

链接

应该注意的是,没有这样的东西常量变量,但常量值。

You have to call ruby constants with a big letter:

Content2 instead of content2.

A constant name starts with an uppercase letter followed by name characters. Class names and module names are constants, and follow the constant naming conventions. By convention, constant variables are normally spelled using uppercase letters and underscores throughout.

Link

It should be noted though that there is no such thing as constant variables, but constant values.

云胡 2024-11-23 15:27:19

请用户 eval("content#{i + 2}")

请注意,eval 很危险:-)

Can you please user eval("content#{i + 2}")

Note that eval is dangerous though :-)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文