进入控制台后如何选择特定租户?

Bru*_*ego 4 ruby-on-rails multi-tenant apartment-gem

下面的代码config/initializers/console.rb仅在我第一次执行rails consoleCLI 时才存储。退出并再次进入时,不会显示选择消息,但会加载所选的预览租户。

if defined?(Rails::Console) || $PROGRAM_NAME.include?('spring')
  tenants = Apartment.tenant_names.sort
  default = tenants.first

  puts "Available tenants: #{tenants.join(', ')}"

  print "Select tenant (#{default}): "
  tenant = gets.strip

  Apartment::Tenant.switch! tenants.include?(tenant) ? tenant : default
end
Run Code Online (Sandbox Code Playgroud)

我希望每次进入时rails console询问将加载什么租户。

谢谢!

小智 5

我获得 Apartment::Tenant.switch 的唯一方法!要在 Rails 控制台中工作,需要在项目的根目录中创建以下 .irbrc 文件:

IRB.conf[:IRB_RC] = Proc.new do
  tenants = Apartment.tenant_names.sort
  puts "Available tenants: #{tenants.join(', ')}"

  print "Select tenant: "
  tenant = gets.strip

  unless tenant.empty?
    if tenants.include?(tenant)
      Apartment::Tenant.switch!(tenant)
    else
      puts "Tenant not found in list '#{tenant}'"
    end
  end
  puts "Tenant set to '#{Apartment::Tenant.current}'"
end
Run Code Online (Sandbox Code Playgroud)