2012-07-23 11 views
7

Sto riscontrando qualche problema nell'accedere a Rails.root dal mio motore di rotaie, che sto creando. Ho bisogno di recuperare un file di configurazione yml dall'app principale.Rails.root dal motore

Esistono "migliori pratiche" per la gestione delle configurazioni dei motori?

+0

hai provato con 'Rails.application.root'? – shime

+0

Sì e anche questo è zero. – sandelius

risposta

8

Supponiamo di avere un attributo modulo per questo.

# lib/my_engine.rb 

module MyEngine 

    mattr_accessor :app_root 

end 

Poi si può caricarlo dal blocco di inizializzazione in questo modo:

# lib/my_engine/engine.rb 

module MyEngine 

    class Engine < Rails::Engine 

    initializer "my_engine.load_app_root" do |app| 

     MyEngine.app_root = app.root 

    end 

    end 

end 
+0

Per me, doveva essere 'initializer' invece di' initialize' .. (http://edgeapi.rubyonrails.org/classes/Rails/Engine.html) –

+0

sì, errore di battitura. aggiornato ora. Grazie! – shime

+0

Ottima risposta, grazie! – newUserNameHere

1

utilizzare invece Rails.root uso: MyEngine::Engine.root; D

+0

questo non ha funzionato per me. –

+0

@ dan-klasson dove stai tentando di accedere? All'interno dell'app principale o all'interno del motore stesso? –

+0

In 'engine.rb'. –

Problemi correlati