Rails类名是否包含数字?例如:
class Test123
end
这是一个有效的课程吗?我尝试加载课程时出现uninitialized constant Test123
错误。
答案 0 :(得分:48)
我认为Artem Kalinchuk的最后评论应该是这个错误问题的答案。
Ruby类名称可以包含数字。
必须在正确命名的文件中定义 Rails 类。如果我定义了一个名为NewYear2012Controller
的类,则需要在 new_year2012_controller.rb 文件中定义,而不是“new_year_2012_controller.rb”。
因为这是Rails变形器和自动加载的工作原理。
答案 1 :(得分:7)
是的,Ruby class names may contain numbers。但是,与Ruby中的所有标识符一样,they may not begin with numbers。
标识符
示例:
foobar ruby_is_simple
Ruby标识符由字母表组成, 十进制数字和下划线字符,以a开头 字母(包括下划线)。对此没有任何限制 Ruby标识符的长度。
答案 2 :(得分:1)
尝试这样做:
如下:
class TwoProduct < ActiveRecord::Base
self.table_name = '2_products'
end
答案 3 :(得分:0)
我不知道这个......
请参阅以下
class Ab123
def initialize(y)
@z = y
end
end
class AbCde
def initialize(y)
@z = y
end
end
以及以下实例:
Ab123.new x
或
AbCde.new x
只有后者AbCde.new x
才能正确实例化。