我想在Rails 3中定义全局常量,但我很困惑在Google上看到这么多不同的答案。
我正在尝试this solution,但它不起作用并且出错:
Undefined method `music_type' for #<Rails::Application::Configuration:0xb7ac0230>
在/config/application.rb
中module RailsRoot
Class Application < Rails :: Application
config.music_type = '2'
end
end
在控制器
中RailsRoot::Application::config.music_type
不确定我做错了什么。
由于
答案 0 :(得分:1)
你需要一个专门的宝石,像http://rubygems.org/gems/rails-3-settings
一样this帖子有详细的答案
答案 1 :(得分:1)
我认为,最好的方法是在config/initializers/
文件夹中定义自己的初始值设定项。
示例:
在my_initializer.rb
文件夹中创建config/initializers/
,内容如下:
require 'socket'
def local_ip
orig, Socket.do_not_reverse_lookup = Socket.do_not_reverse_lookup, true # turn off reverse DNS resolution temporarily
UDPSocket.open do |s|
s.connect '64.233.187.99', 1
s.addr.last
end
ensure
Socket.do_not_reverse_lookup = orig
end
SERVER_IP = local_ip
并且在某些控制器中使用该常量:
log_it "Server IP address is: #{SERVER_IP}"