以下是使用activerecord-multi-tenant
和acts_as_tenant
解决多租户问题,并与Active Admin集成的代码示例:
gem 'activerecord-multi-tenant'
gem 'acts_as_tenant'
gem 'activeadmin'
account_id
):rails generate migration AddAccountIdToUsers account_id:integer:index
rake db:migrate
User
模型中使用acts_as_tenant
:class User < ApplicationRecord
acts_as_tenant(:account)
# ...
end
ActiveAdmin.register
:ActiveAdmin.register User do
# ...
end
ActiveAdmin.register User do
controller do
before_action :set_tenant
private
def set_tenant
account = Account.find(params[:account_id])
ActsAsTenant.current_tenant = account
end
end
end
ActiveAdmin.register Account do
sidebar "Users", only: :show do
ul do
account.users.each do |user|
li link_to(user.name, admin_account_user_path(account, user))
end
end
end
end
这样,你就可以在Active Admin界面中的用户资源中选择特定租户,并且只显示与该租户相关的用户。
请注意,这只是一个基本示例,你可能需要根据自己的需求进行调整和扩展。