下面存储在config/initializers/console.rb中的代码仅在我第一次执行rails console CLI时起作用。退出并再次输入时,不会显示任何选择消息,但是会加载所选的预览租户。

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

我希望每次在rails console中输入时都会询问要加载哪些租户。

谢谢!

最佳答案

我可以得到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

08-26 11:28