当前位置:  开发笔记 > 后端 > 正文

在Rails中显示主机名和数据库名

如何解决《在Rails中显示主机名和数据库名》经验,为你挑选了6个好方法。

我想在视图中显示当前的主机名和数据库名.

我在哪里可以得到这些名字?

是否有一些预定义的环境或全局变量?



1> Fernando Alm..:

使用Rails 3,您可以使用

Rails.configuration.database_configuration[Rails.env]

要么

Rails.application.config.database_configuration[Rails.env]

要么

ActiveRecord::Base.connection_config


你得到它的'ActiveRecord :: Base.connection_config`我认为这是最干净的方法.

2> craic.com..:

Rails :: configuration.new答案在Rails 3中不起作用

config   = Rails::Configuration.new
NoMethodError: undefined method `new' for Rails::Configuration:Module
[...]

如果你使用MySQL或Postgres,那么这是有效的

ActiveRecord::Base.connection.current_database

但这仅适用于已实施该方法的驱动程序.例如,它不适用于SQLite.



3> Robert Gambl..:

您可以创建rails配置对象并从中获取必要的信息:

config   = Rails::Configuration.new
host     = config.database_configuration[RAILS_ENV]["host"]
database = config.database_configuration[RAILS_ENV]["database"]

有关详细信息,请参阅Rails :: Configuration 的文档.



4> Ryan Long..:

在Rails 3上,最容易通过它访问Rails::Application.config,如下所示:

    YourApplicationClassName::Application.config.database_configuration[::Rails.env]

如果您尝试直接调用它Rails而不是YourApplicationClassName,rails会给您一个depertation警告.如果您不知道应用程序常量是什么,请在应用程序Rails.application.class.name的Rails控制台中尝试.



5> joshmckin..:

连接到多个数据库时,下面的方法很好.在Sqlite3和Mysql2上测试过

MyModel.connection.instance_variable_get(:@config)[:database]



6> 小智..:

在Rails控制台中测试:

ActiveRecord::Base.connection.instance_variable_get(:@config)

下一个信息应该是:适配器,主机,编码,重新连接,数据库名称,用户名,通过

推荐阅读
mobiledu2402852357
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有