2015-07-06 4 views
1

У меня есть приложение, которое отлично работает под Rails 2.3.2. Я пытаюсь обновить его до Rails 4.0, используя nginx и единорог.Преобразование Rails 2.3 в Rails 4.0 environment.rb

Мой конфиг/environment.rb есть такие строки, которые не работают:

Rails::Initializer.run do |config| 
    config.load_paths += %W(#{RAILS_ROOT}/vendor/gems/ #{RAILS_ROOT}/app/exceptions/) 
    config.action_controller.session = { :session_key => "my_app", :secret => "c4c6eee57d9af4f2e1a9c56a49d974b7" } 

    config.gem "mocha", :version => '>=0.9.4' 

Сообщение об ошибке я получаю в unicorn.log является

ERROR -- : uninitialized constant Rails (NameError) 
/home/art/config/environment.rb:70:in `<top (required)>' 

и линия 70 является "Rails :: Initializer.run do | config | " выше.

Я полагаю, что эти вещи были перенесены в какой-нибудь файл инициализатора? Я предполагаю, что пакет теперь обрабатывает версии gem, поэтому мне нужно просто переместить строки «config.gem ...: version ...» в мой Gemfile? И где я должен установить session_key?

Спасибо за любой совет.

ответ

0

в новом Rails требует application.rb файла:

# Load the Rails application. 
require File.expand_path('../application', __FILE__) 

В разделе application.rb требуют рельсов:

require File.expand_path('../boot', __FILE__) 

require 'rails/all' 

# Require the gems listed in Gemfile, including any gems 
# you've limited to :test, :development, or :production. 
Bundler.require(*Rails.groups) 

обычно session_key находится в новом инициализаторе (в папке инициализаторов - look here)

в любом случае попробуйте запустить rake rails:update it может помочь вам изменить некоторые вещи,

или создать новый проект рельсов и начать копировать вещи оттуда.

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