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

时间:2011-06-21 18:10:54

标签: ruby-on-rails ruby

我正在使用它:

4.times { |i| assert_not_equal("content#{i + 2}".constantize, object.first_content) }

我先前已经声明了局部变量

content1
content2
content3
content4
content5

我得到的错误

NameError: wrong constant name content2

Whot这个错误意味着什么?我很确定我想要content2 = \

2 个答案:

答案 0 :(得分:7)

你必须用一个大字母来调用ruby常量:

Content2代替content2

  

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

Link

应该注意的是,不存在常数变量,而是常数值。

答案 1 :(得分:0)

您能否请用户eval(“内容#{i + 2}”)

请注意,eval很危险: - )