m33*_*lky 40 ruby configuration ruby-on-rails
在database.yml中,您可以定义所有设置.如何从ruby访问这些设置?我看了看App::Application::config,但在那里找不到.另外,我记得有人能够在没有yaml的情况下配置数据库设置,有谁知道怎么做?
tsh*_*rif 60
Rails.configuration.database_configuration
Run Code Online (Sandbox Code Playgroud)
这将为您提供一个哈希表,其中包含每个环境的配置.例如,获取您的开发数据库名称:
Rails.configuration.database_configuration["development"]["database"]
Run Code Online (Sandbox Code Playgroud)
iGE*_*GEL 53
在Rails 4.2中,您可以这样做:
ActiveRecord::Base.connection.current_database
Run Code Online (Sandbox Code Playgroud)
您还可以询问其数据库的特定模型(因为每个模型可以使用不同的数据库):
User.connection.current_database
Run Code Online (Sandbox Code Playgroud)
小智 16
从 Rails 6.1 开始,您必须使用ActiveRecord::Base.connection_db_config. 因此您可以访问其他类方法,例如database().
db_config = ActiveRecord::Base.connection_db_config
print db_config.database
# main available methods: [:host, :schema_cache_path, :migrations_paths, :config, :database, :_database=, :checkout_timeout, :reaping_frequency, :idle_timeout, :replica?, :configuration_hash, :adapter, :pool]
Run Code Online (Sandbox Code Playgroud)
小智 9
获取更多信息的另一种方法是使用特定于数据库的连接信息方法。例如,如果您使用的是 postgresql,则可以通过以下方式获取当前数据库连接的详细信息:
ActiveRecord::Base.connection.raw_connection.conninfo_hash
Run Code Online (Sandbox Code Playgroud)
这将提供更多连接详细信息,而不仅仅是那些与默认值不同的连接详细信息。
| 归档时间: |
|
| 查看次数: |
23174 次 |
| 最近记录: |