Ich bin mir ziemlich sicher, dass der Fehler nichts mit dem tatsächlichen Inhalt des TenantIdLoader Moduls zu tun hat. Stattdessen hat es etwas mit ActiveSupport-Abhängigkeiten zu tun.Eine Kopie von xxx wurde aus dem Modulbaum entfernt, ist aber immer noch aktiv
Ich kann nicht scheinen, über diesen Fehler zu kommen. Von dem, was ich gelesen habe, liegt es daran, dass entweder ActiveRecord :: Base neu geladen wird oder Company :: TenantIdLoader neu geladen wird und das irgendwie nicht kommuniziert. Hilfe bitte! Ich möchte wirklich auf Rails 4.2 aktualisiert werden können.
EDIT
ich gelernt habe, jetzt, wo es ist, weil ich Mieter bin Referenzierung, die automatisch nachgeladen wird immer. Ich muss in der Lage sein, tatsächlich auf die Klasse zu verweisen, weiß also jemand, wie man das schafft?
config/application.rb
config.autoload_paths += %W(#{config.root}/lib/company)
config/initializers/company.rb
ActionMailer::Base.send(:include, Company::TenantIdLoader)
lib/Unternehmen/tenant_id_loader.rb
module Company
module TenantIdLoader
extend ActiveSupport::Concern
included do
cattr_accessor :tenant_dependency
self.tenant_dependency = {}
after_initialize do
self.tenant_id = Tenant.active.id if self.class.tenant_dependent? and self.new_record? and Tenant.active.present? and !Tenant.active.zero?
end
end
# class methods to be mixed in
module ClassMethods
# returns true if this model's table has a tenant_id
def tenant_dependent?
self.tenant_dependency[self.table_name] ||= self.column_names.include?('tenant_id')
end
end
end
end
Hilft diese Antwort überhaupt? http://stackoverflow.com/questions/17561697/argumenteterror-a-copy-of-applicationcontroller-has-been-removed-from-the-module/23008837#23008837 –
Sind Sie sicher, dass die Mieter-Klasse beteiligt ist? Wenn Sie die Bits dieses Codes, die Tenant verwenden, ausgeben, erhalten Sie immer noch einen Fehler? –
@WaynnLue yeah Ich denke, das ist der Grund, ich weiß einfach nicht, wie ich es beheben kann. – kddeisz