2012-03-27 44 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]