0

MigrationProceduresサポートされていない ActiveRecord SQL ステートメントを実行するために使用したい app/concerns でモジュールを宣言しました。

このモジュール内で、定数を呼び出す必要があります

[RAILS_ENV]['database']

しかし、現状では、レールはメソッドに初期化されていない定数があることを教えてくれますRAILS_ENV

私はこれが下で使用されているべきではありません

def self.included(base)
...
end

使用しようとしましたが、存在しAppName::RAILS_ENVないことがMigrationProcedures::AppNameわかります。この定数をどのように呼び出すことができますか?

4

1 に答える 1

2

Rails 環境にアクセスするには、次の 2 つの方法があります。

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

最初のケースでc.database_configuration[Rails.env]["database"]は、あなたが望むものを提供します。

この::SOME_MODULE構文により、現在の名前空間から新しい名前空間に移動できます。モジュール名がないと、Ruby 環境のトップに移動します。

この Stack Overflow の議論は非常に興味深いものです。

于 2013-02-28T19:53:08.067 に答える