2011-12-07 65 views
0

我想在Rails 3中定義全局常量,但我很困惑在Google上尋找這麼多不同的答案。在哪裏把全局常量在軌道3

我試圖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

它的工作...我忘了重啓服務器 – Viral

回答

1

我認爲,最好的方法是定義你自己的初始化中config/initializers/文件夾中。

例子:

config/initializers/文件夾下面的內容創建my_initializer.rb

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}"