Estoy bastante seguro de que el error no tiene nada que ver con el contenido real del TenantIdLoadermódulo. En cambio, tiene algo que ver con las ActiveSupportdependencias.
Parece que no puedo superar este error. Por lo que he leído, es porque ActiveRecord::Basese está volviendo a cargar o Company::TenantIdLoaderse está volviendo a cargar, y de alguna manera no se está comunicando eso. ¡Ayuda por favor! Realmente me gustaría poder actualizarme a Rails 4.2.
EDITAR
Ahora he aprendido que es porque estoy haciendo referencia a Tenantque se recarga automáticamente. Sin embargo, necesito poder hacer referencia a la clase, entonces, ¿alguien sabe cómo solucionar esto?
config / application.rb
config.autoload_paths += %W( #{config.root}/lib/company )
config / initializers / company.rb
ActionMailer::Base.send(:include, Company::TenantIdLoader)
lib / company / 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