Подтвердить что ты не робот

Rails 5 игнорирует класс lib?

Я использовал этот метод для модалов в рельсах. Он работает очень хорошо, но я только что обновился до Rails 5 beta3, и теперь он не работает в производстве.

Я получаю эту ошибку:

Completed 500 Internal Server Error in 22ms (ActiveRecord: 0.9ms)

NameError (uninitialized constant ApplicationController::ModalResponder):

app/controllers/application_controller.rb:26:in `respond_modal_with'
app/controllers/tools_controller.rb:28:in `new'

Нанесено ли мое наследство Rails 5?

My class ModalResponder < ActionController::Responder находится в /lib и работает в разработке...

Ищите информацию об изменениях с рельсами 5, но источники ограничены моими знаниями.

4b9b3361

Ответ 1

Вам нужно добавить "require" (на application.rb) с вашими классами внутри папки lib.

Как

require './lib/someclass'

Я рекомендую вам поместить его внутри плагина Rails.

Ответ 2

В config/application.rb измените это:

config.autoload_paths << Rails.root.join('lib')

на это:

config.eager_load_paths << Rails.root.join('lib')

eager_load_paths будет охотно загружен в производство и по требованию в разработке. делая это таким образом, вам не нужно явно запрашивать каждый файл.

Подробнее о этом ответе.

Ответ 3

В нем говорится, что он не может найти ApplicationController::Responder, который был удален из Rails 4.2 в отдельный камень.

Добавить gem 'responders' в ваш Gemfile

Классы в lib не загружаются автоматически, вам необходимо их