模型需要不止一次?

时间:2011-11-04 02:20:51

标签: ruby-on-rails ruby activerecord

我有一个相对较大的Rails应用程序(198个模型),我们在某些模型上定义了常量(即幻数)。这些常量有时会从其他模型中作为类定义的一部分引用。

受挫的例子:

class Employee < ActiveRecord::Base
   TYPES = [ 1234, 5678 ]
end

class CommissionType < ActiveRecord::Base
  validates :employee_type, :inclusion => { :in => Employee::TYPES }
end

当应用程序加载时,我们会收到警告消息,如:

employee.rb:2: warning: already initialized constant TYPES

我不知道导致这种情况的原因,因为看起来employee.rb文件被加载了两次,因此该类被定义了两次。通过两次定义所有内容,这也会在Ruby中使用两倍的内存量吗?

我已经检查过模特并没有明确要求彼此。虽然我可以将这些常量移动到初始化器,但似乎不止一次定义的模型存在问题。

这引起关注吗?或者我应该忽略它并将常量转移到初始化器?

这是在Rails 3.0.10

1 个答案:

答案 0 :(得分:0)

我想你可以做一个

:in => Employee.TYPES

你可能需要自己制作TYPES。