Rails - 如何制作全局对象

时间:2012-03-27 13:48:07

标签: ruby-on-rails global-variables application-variables

我想在Rails应用程序启动时解析一次XML文档。 它被解析为一个对象,我希望可以从任何用户会话的任何地方访问该对象。 如何以正确的方式实现这个应用程序级对象?

1 个答案:

答案 0 :(得分: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]