2016-12-15 2 views
0

У меня есть файл с именем frontend_configuration.rb, который выглядит следующим образом:Rails 5 пользовательских инициализатор не работает

class FrontEndConfiguration 
    class << self 
    attr_accessor :base_url 
    end 
end 

В моей development конфигурации, у меня есть строка:

FrontEndConfiguration.base_url = "http://localhost:4200" 

Когда я пытаюсь запустить свой rails server, это приводит к ошибке:

uninitialized constant FrontEndConfiguration (NameError) 

Я следую за этим Stackoverflo w ответьте здесь: Rails 3/Setting Custom Environment Variables

Любые идеи, почему Rails не обнаруживает мой пользовательский инициализатор?

Я использую только режим Rails 5 API.

ответ

2

Попробуйте это.

# config/frontend.yml: 
production: 
    environment: production 
    base_url: http://your_url 
    . 
    . 
    . 
development: 
    environment: sandbox 
    base_url: http://your_url 
    . 
    . 
    . 


# config/application.rb 
module MyApp 
    class Application < Rails::Application 
    config.frontend = config_for(:frontend) 
    end 
end 

И теперь,

Rails.configuration.frontend['base_url'] 
# => production_base_url or development_base_url 
+0

Это рекомендуемый способ сделать это в Rails 5 теперь? Это, безусловно, работает для того, чего я хочу достичь. – Zhang

+0

@ Zhang да это. Посмотрите [документация] (http://guides.rubyonrails.org/configuring.html#custom-configuration) –

Смежные вопросы