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

Rails 4 неинициализированная константа для модуля

В новом rails 4 app я anm получена неинтеллизированная постоянная ошибка для модуля. Модуль называется ProcessBill и находится в lib/process_bill.rb

Ошибка консоли:

ActionController::RoutingError (uninitialized constant BillsController::ProcessBill):

код контроллера:

class BillsController < ApplicationController

  include ProcessBill

Библиотека/process_bill.rb

module ProcessBill
4b9b3361

Ответ 1

Вы добавили lib в свой путь автозагрузки? Это было необходимо в Rails 3, я не уверен, что это все еще требуется для Rails 4.

Попробуйте добавить это в определение класса в config/application.rb -

    config.autoload_paths += %W(#{config.root}/lib)

Ответ 2

У меня тоже была проблема с каталогом lib с Rails 5, и он появился в производстве, но не в разработке. Чтобы исправить это, вам нужно добавить каталог lib в eager_load_paths. Вот соответствующая часть моего приложения .rb:

config.autoload_paths << "#{Rails.root}/lib"
config.eager_load_paths << "#{Rails.root}/lib"

Ответ 3

Попробуйте добавить эту строку в верхнюю часть вашего контроллера:

require "#{Rails.root}/lib/process_bill.rb"

Ответ 4

Это также будет работать в Rails 5 в вашем файле application.rb:

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