Ruby on rails 模块中的Rails设置宏

Ruby on rails 模块中的Rails设置宏,ruby-on-rails,ruby,Ruby On Rails,Ruby,我试图在模块中设置属于、验证和默认作用域 module MultiTenancy class TenantNotSetError < StandardError ; end def self.included(model) class << model belongs_to :tenant validates :tenant_id, presence: true default_scope -> { r

我试图在模块中设置属于、验证和默认作用域

module MultiTenancy
  class TenantNotSetError < StandardError ; end

  def self.included(model)
    class << model
      belongs_to :tenant
      validates :tenant_id, presence: true
      default_scope -> {
        raise TenantNotSetError.new unless Tenant.current_tenant
        where(tenant_id: Tenant.current_tenant.id)
      }

      def multi_tenanted?
        true
      end
    end
  end
end
模块多租户
类TenantNotSetError
我不断地得到一份工作

NoMethodError: undefined method `belongs_to' for #<Class:User>
NoMethodError:for的未定义方法“属于”#
错误

我做错了什么?

这应该可以:

def self.included(base)
  base.class_eval do
    # your code goes here
  end
end

它不起作用的原因是您试图在
User
的元类上调用
属于
,而不是在
User
上调用

您的
User
类是否继承自
ActiveRecord::Base