有没有一种方法可以检索数据库连接字符串,以便了解我的 Ruby 连接的:
1)Ruby 连接的数据库名称 2)SQL Server 的用户名 3)SQL Server 的密码 4)服务器名称
我希望将其存储在会话变量中。
(我正在使用 MS SQL Server。)
请帮忙!谢谢!
有没有一种方法可以检索数据库连接字符串,以便了解我的 Ruby 连接的:
1)Ruby 连接的数据库名称 2)SQL Server 的用户名 3)SQL Server 的密码 4)服务器名称
我希望将其存储在会话变量中。
(我正在使用 MS SQL Server。)
请帮忙!谢谢!
我会选择ActiveRecord::Base.connection_config
,它返回一个包含ActiveRecord 3选项的哈希。
ActiveRecord::Base.configurations["development"] =>
{"encoding"=>"utf8", "username"=>"foo", "adapter"=>"mysql", "database"=>"bar_development", "host"=>"localhost", "password"=> "baz"}
数据库:ActiveRecord::Base.connection.current_database
您还可以使用以下的正则表达式:
ActiveRecord::Base.connection.inspect
但是,这是一个糟糕的想法。
有一个 connection_db_config
函数,它返回一个 ActiveRecord::DatabaseConfigurations::UrlConfig
对象,它看起来像这样
> ActiveRecord::Base.connection_db_config
=> #<ActiveRecord::DatabaseConfigurations::UrlConfig:0x000055794c915ad0
@configuration_hash=
{:adapter=>"postgresql",
:encoding=>"unicode",
:pool=>5,
:username=>"postgres",
:password=>nil,
:host=>"localhost",
:port=>5432,
:database=>"oyster_development"},
@env_name="development",
@name="primary",
@url="postgresql://postgres@localhost:5432">
调用url
将会给你连接的URL:
> ActiveRecord::Base.connection_db_config.url
=> "postgresql://postgres@localhost:5432"
你可以将它与数据库名称连接起来,以获取(我认为)完整的连接字符串
> "#{ActiveRecord::Base.connection_db_config.url}/#{ActiveRecord::Base.connection_db_config.database}"
=> "postgresql://postgres@localhost:5432/your_project_development"
这些值都存储在文件config/database.yml
中,但据我所知,您无法从控制器内部将这些值作为变量访问。
Rails.configuration.database_configuration[Rails.env]