下面存储在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