如何命名其类名有数字的Rails ruby​​文件?

时间:2012-03-28 14:26:44

标签: ruby-on-rails ruby

Rails类名是否包含数字?例如:

class Test123
end

这是一个有效的课程吗?我尝试加载课程时出现uninitialized constant Test123错误。

4 个答案:

答案 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

Reference

  

标识符

     

示例:

foobar    ruby_is_simple
     

Ruby标识符由字母表组成,   十进制数字和下划线字符,以a开头   字母(包括下划线)。对此没有任何限制   Ruby标识符的长度。

答案 2 :(得分:1)

尝试这样做:

  • 重命名您的模型和model.rb文件
  • 添加table_name magic

如下:

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才能正确实例化。