レールここで、Railsスタックのすべてのレイヤーで認識できる変数を定義する必要があります。例えばアプリケーション全体のグローバル変数
、Iはヘルパー、レーキタスク、コントローラとモデルでアクセスすることができるCUSTOMER_NAME='John'
可変したいと思います。この変数をどこで定義しますかRails app?
は、私はここですべての.rbのファイルがロードされます/app/config/initializers
に初期化子でRailsのv2.3.2
レールここで、Railsスタックのすべてのレイヤーで認識できる変数を定義する必要があります。例えばアプリケーション全体のグローバル変数
、Iはヘルパー、レーキタスク、コントローラとモデルでアクセスすることができるCUSTOMER_NAME='John'
可変したいと思います。この変数をどこで定義しますかRails app?
は、私はここですべての.rbのファイルがロードされます/app/config/initializers
に初期化子でRailsのv2.3.2
を使用しています、私は通常、このようなもののための1つと呼ばれるpreferences.rbを作成します。
参照:
http://guides.rubyonrails.org/configuring.html#using-initializer-filesあなたは真のグローバル定数をしたいですか? ::COSTUMER_NAME
を使用してください。 真のグローバル変数が必要ですか? $COSTUMER_NAME
を使用してください(推奨しません)。 リクエストグローバル変数が必要ですか? #env
メソッドのHash
を使用してください。
あなたはLinuxサーバー全体のグローバル変数を作成することを意味しますか? – Mellon
'ENV'と'#env'は2つの異なるものです。 'ENV'はUnix環境を表すグローバル定数です。 '#env'は、現在のラック環境を返すコントローラメソッドです。 – Reactormonk
私は::: TESTABC = 'ホラ'とビュー:: TESTABCから印刷しようとすると、定義されていません。 –
別のアプローチは、そうのように、config/application.rb
にconfigオブジェクトのキーを設定することです:
MyApp::Application.configure do
# ...
config.my_key = 'some "global" value'
end
あなたはその後、これだけでどこでもあなたのアプリ内からmy_key
にアクセスすることができます。
MyApp::Application.config.my_key
また、マイク・パーハムは同様のことを述べているが、より包括的なアプローチだが、in his blog post。
定数ではありませんが、変数ではありませんか?実行時にアプリケーション内で変更できますか? – Paul
これは変数であり、実行時に変更することができます。 –
あなたが求めていることは変数ではなく、定数です。つまり、アプリケーション内から設定することはできません。間違った言葉がここで使われているので、私はここで検索エンジンによって誤解されました。 – Paul