2012-03-27 78 views
0

我想在Rails應用程序啓動時解析一次XML文檔。 它被解析爲一個對象,並且我希望這個對象可以從任何用戶會話的任何地方訪問。 如何以正確的方式實現這個應用程序級對象?Rails - 如何創建全局對象

+1

可能重複[Ruby on Rails的:在哪裏定義全局常量(HTTP:/ /stackoverflow.com/questions/4110866/ruby-on-rails-where-to-define-global-constants) – 2012-03-27 13:53:01

+0

可能是,但有一些小常量的定義。這種方法適用於大型物體嗎? – Paul 2012-03-27 14:08:18

+0

我想要MyApp :: Application.GLOBAL_OBJECT – Paul 2012-03-27 14:25:55

回答

1

如果你只是從XML需要信息,你可以把它作爲簡單的哈希/陣列/串,並沒有具體的目標是必要的,你可以使用Settingslogic這 - 通常需要YAML文件,然後在整個可訪問整個應用。例如,你定義一個類:

# app/models/settings.rb 
class Settings < Settingslogic 
    source "#{Rails.root}/config/application.yml" 
    namespace Rails.env 
end 

# config/application.yml 
defaults: &defaults 
    global: 'Hello' 

development: 
    <<: *defaults 
    more: 
    data: [1, 2, 3] 

然後你就可以在任何地方使用它像這樣:

> Settings.global 
=> "Hello" 
> Settings.more.data 
=> [1, 2, 3]