2013-02-28 32 views
0

我在应用/关注中声明了一个模块MigrationProcedures,我想用它来执行一些不支持的ActiveRecord SQL语句。在模块中调用Rails常量

里面这个模块,我需要调用恒

[RAILS_ENV]['database']

但它现在站,轨告诉我,有在法未初始化的常数RAILS_ENV

我不应该,这是被

def self.included(base) 
... 
end 

我试图用AppName::RAILS_ENV下使用,但是它告诉我,MigrationProcedures::AppName这么想的存在。我怎么称呼这个常量?

回答

2

您可以在Rails环境得到了几种方法:

c = ::Rails.application.config 
my_env = ::ENV 

在第一种情况下c.database_configuration[Rails.env]["database"]给你想要的东西。

::SOME_MODULE语法可以让您脱离当前的命名空间并进入新的命名空间。没有模块名称,它会将您带到Ruby环境的顶部。

This Stack Overflow discussion is very illuminating.