我在app / concerns中声明了一个模块MigrationProcedures
,我想用它来执行一些不受支持的ActiveRecord SQL语句。
在这个模块中,我需要调用常量
[RAILS_ENV]['database']
但是现在看来,rails告诉我方法中有一个未初始化的常量RAILS_ENV
。
我不应该在
下使用它def self.included(base)
...
end
我尝试使用AppName::RAILS_ENV
,但这告诉我MigrationProcedures::AppName
不存在。我该怎么称呼它?
答案 0 :(得分:2)
您可以通过以下几种方式访问Rails环境:
c = ::Rails.application.config
my_env = ::ENV
在第一种情况下,c.database_configuration[Rails.env]["database"]
会为您提供所需内容。
::SOME_MODULE
语法将您从当前的命名空间中转移到新的命名空间中。如果没有模块名称,它会将您带到Ruby环境的顶端。