Ruby on Railsアプリケーションでは、定数を定義するのに最適な場所はどこですか?
アプリケーションのすべてのコントローラーで利用できる必要がある定数データの配列があります。
Rails> = 3、アプリケーション自体はモジュールです(config/application.rb
に含まれています)。それらをアプリケーションモジュールに保存できます
module MyApplication
SUPER_SECRET_TOKEN = "123456"
end
次に、MyApplication::SUPER_SECRET_TOKEN
を使用して定数を参照します。
Rails> = 2.1 && <3あなたはそれらを配置する必要があります
/config/initializers
内Rails 2.1およびinitializers
サポートの前は、アプリケーション定数をenvironment.rbに配置するためにプログラマーが使用されていました。
ここにいくつかの例があります
# config/initializers/constants.rb
SUPER_SECRET_TOKEN = "123456"
# helpers/application_helper.rb
module ApplicationHelper
THUMBNAIL_SIZE= "100x20"
def thumbnail_tag(source, options = {})
image_tag(source, options.merge(:size => THUMBNAIL_SIZE)
end
end
これらはconfig/environment.rbに配置できます。
Rails::Initializer.run do |config|
...
SITE_NAME = 'example.com'
end
大量のグローバル定数がある場合、これは面倒になる可能性があります。 YAMLファイルから調達するか、データベースに定数を保持することを検討してください。
編集:
wepposの答えがより良い答えです。
定数をconfig/initializers/*。rbのファイルに保存します