Модели требуются более одного раза? - PullRequest
0 голосов
/ 04 ноября 2011

У меня есть относительно большое приложение 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 голосов
/ 04 ноября 2011

Я думаю, вы могли бы просто сделать

:in => Employee.TYPES

вам, возможно, придется сделать ТИПЫ самостоятельно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...