mla*_*bie 44 ruby ruby-on-rails constants
在Ruby on Rails应用程序中,定义常量的最佳位置在哪里?
我有一系列常量数据,我需要在我的应用程序中的所有控制器上提供.
Sim*_*tti 64
Rails> = 3,应用程序本身就是一个模块(生活在其中config/application.rb).您可以将它们存储在应用程序模块中
module MyApplication
SUPER_SECRET_TOKEN = "123456"
end
Run Code Online (Sandbox Code Playgroud)
然后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
Run Code Online (Sandbox Code Playgroud)
gun*_*uns 10
您可以将它们放在config/environment.rb中:
Rails::Initializer.run do |config|
...
SITE_NAME = 'example.com'
end
Run Code Online (Sandbox Code Playgroud)
如果你有大量的全局常量,这可能会很混乱.考虑从YAML文件中获取,或者将常量保留在数据库中.
编辑:
weppos的回答是更好的答案.
将常量保存在config/initializers/*.rb中的文件中
| 归档时间: |
|
| 查看次数: |
35125 次 |
| 最近记录: |