2013-02-28 28 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.