0

我在 app/concerns 中声明了一个模块MigrationProcedures,我想用它来执行一些不受支持的 ActiveRecord SQL 语句。

在这个模块中,我需要调用常量

[RAILS_ENV]['database']

但就目前而言,rails 告诉我该RAILS_ENV方法中有一个未初始化的常量。

我不应该在下面使用它

def self.included(base)
...
end

我尝试使用AppName::RAILS_ENV,但这告诉我不MigrationProcedures::AppName存在。我怎么能称这个常数?

4

1 回答 1

2

您可以通过以下几种方式进入 Rails 环境:

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

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

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

这个 Stack Overflow 的讨论很有启发性。

于 2013-02-28T19:53:08.067 回答