Ich habe eine Sorge und zwei Klassen, die es enthalten. Im Konzern habe ich eine Variable definiert. Hier ist die Sorge und die beiden Modelle:Korrekte Verwendung von const Konstanten
module UserInstance
extend ActiveSupport::Concern
included do
ACTIVE = 'active'
end
end
class Guardian < ActiveRecord::Base
include UserInstance
end
class Student < ActiveRecord::Base
include UserInstance
end
Ich bekomme diese Warnungen:
/app/app/models/concerns/user_instance.rb:12: warning: already initialized constant UserInstance::ACTIVE
/app/app/models/concerns/user_instance.rb:12: warning: previous definition of ACTIVE was here
Ich denke, dass, sobald es eine Klasse lädt (wie Guardian
), ist es auch die konstante lädt, und Das Laden der anderen Klasse versucht, die Konstante erneut zu laden, und dann wird die Warnung ausgegeben. Wie kann ich das vermeiden, ohne die Konstanten in die beiden Modelle zu setzen? Danke
Ja, auch auf Rails 5 mit Bedenken scheint dies der richtige Weg zu sein – jpwynn