Ответ 1
Вам нужно добавить "require" (на application.rb) с вашими классами внутри папки lib.
Как
require './lib/someclass'
Я рекомендую вам поместить его внутри плагина Rails.
Я использовал этот метод для модалов в рельсах. Он работает очень хорошо, но я только что обновился до 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, но источники ограничены моими знаниями.
Вам нужно добавить "require" (на application.rb) с вашими классами внутри папки lib.
Как
require './lib/someclass'
Я рекомендую вам поместить его внутри плагина Rails.
В config/application.rb
измените это:
config.autoload_paths << Rails.root.join('lib')
на это:
config.eager_load_paths << Rails.root.join('lib')
eager_load_paths
будет охотно загружен в производство и по требованию в разработке. делая это таким образом, вам не нужно явно запрашивать каждый файл.
Подробнее о этом ответе.
В нем говорится, что он не может найти ApplicationController::Responder
, который был удален из Rails 4.2 в отдельный камень.
Добавить gem 'responders'
в ваш Gemfile
Классы в lib
не загружаются автоматически, вам необходимо их