Ich möchte ein XML-Dokument einmal analysieren - beim Start der Rails-Anwendung. Es wird an ein Objekt geparst, und ich möchte, dass dieses Objekt von jeder beliebigen Benutzersitzung aus erreichbar ist. Wie implementieren Sie dieses Objekt auf Anwendungsebene richtig?Rails - Wie mache ich ein globales Objekt
0
A
Antwort
1
Wenn Sie nur Informationen aus dem XML benötigen und Sie können es als einfache Hashes/Arrays/Strings haben, und kein spezifisches Objekt ist notwendig, können Sie dafür Settingslogic verwenden - normalerweise dauert es Yaml-Datei und ist dann im gesamten zugänglich ganze Anwendung. Zum Beispiel definieren Sie eine Klasse:
# 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]
Und dann kann man es so überall verwenden:
> Settings.global
=> "Hello"
> Settings.more.data
=> [1, 2, 3]
möglich Duplikat [Ruby on Rails: Wo globale Konstanten definieren] (http://stackoverflow.com/questions/4110866/ruby-on-rails-where-to-define-global-constants) –
Kann sein, aber es sind kleine Konstanten definiert. Gilt dieser Ansatz für ein großes Objekt? – Paul
Ich möchte MyApp :: Application.GLOBAL_OBJECT – Paul