Fer*_*ida 54
使用Rails 3,您可以使用
Rails.configuration.database_configuration[Rails.env]
Run Code Online (Sandbox Code Playgroud)
要么
Rails.application.config.database_configuration[Rails.env]
Run Code Online (Sandbox Code Playgroud)
要么
ActiveRecord::Base.connection_config
Run Code Online (Sandbox Code Playgroud)
cra*_*com 25
Rails :: configuration.new答案在Rails 3中不起作用
config = Rails::Configuration.new
NoMethodError: undefined method `new' for Rails::Configuration:Module
[...]
Run Code Online (Sandbox Code Playgroud)
如果你使用MySQL或Postgres,那么这是有效的
ActiveRecord::Base.connection.current_database
Run Code Online (Sandbox Code Playgroud)
但这仅适用于已实施该方法的驱动程序.例如,它不适用于SQLite.
Rob*_*ble 20
您可以创建rails配置对象并从中获取必要的信息:
config = Rails::Configuration.new
host = config.database_configuration[RAILS_ENV]["host"]
database = config.database_configuration[RAILS_ENV]["database"]
Run Code Online (Sandbox Code Playgroud)
有关详细信息,请参阅Rails :: Configuration 的文档.
Rya*_*ong 17
在Rails 3上,最容易通过它访问Rails::Application.config
,如下所示:
YourApplicationClassName::Application.config.database_configuration[::Rails.env]
Run Code Online (Sandbox Code Playgroud)
如果您尝试直接调用它Rails
而不是YourApplicationClassName
,rails会给您一个depertation警告.如果您不知道应用程序常量是什么,请在应用程序Rails.application.class.name
的Rails控制台中尝试.
连接到多个数据库时,下面的方法很好.在Sqlite3和Mysql2上测试过
MyModel.connection.instance_variable_get(:@config)[:database]
Run Code Online (Sandbox Code Playgroud)
小智 6
在Rails控制台中测试:
ActiveRecord::Base.connection.instance_variable_get(:@config)
Run Code Online (Sandbox Code Playgroud)
下一个信息应该是:适配器,主机,编码,重新连接,数据库名称,用户名,通过
归档时间: |
|
查看次数: |
25246 次 |
最近记录: |