每当我在rails 4应用程序的终端中执行某些操作时,我现在收到一条有此警告的消息:
gems/activerecord-4.2.4/lib/active_record/associations.rb:1694: warning: already initialized constant User::HABTM_Roles
/Users/ffd/.rvm/gems/ruby-2.3.0/gems/activerecord-4.2.4/lib/active_record/associations.rb:1694: warning: previous definition of HABTM_Roles was here
有谁知道这意味着什么?
在我的role.rb中,我有:
class Role < ActiveRecord::Base
has_and_belongs_to_many :users, :join_table => :users_roles
belongs_to :resource, :polymorphic => true
validates :resource_type,
:inclusion => { :in => Rolify.resource_types },
:allow_nil => true
scopify
end
在我的user.rb中,我有:
has_and_belongs_to_many :roles, :join_table => :users_roles
答案 0 :(得分:1)
我遇到了同样的问题并找到了一个简单的解决方案。
我以前在我的代码中使用过:
module MyModule
RESET = 'reset'
end
我只是将其更改为
module MyModule
RESET ||= 'reset'
end
我得到了解决方案。
所以看看你是否在代码中做了同样的事情。
这会处理警告并且比检查是否定义了每个常量要简单得多。如果您找到更好的解决方案,请告诉我。