Модуль ruby rails 4.1 - несогласованная ошибка - не инициализирована "неинициализированная константа"
Я использую ruby 2.1.5 и rails 4.1 в следующей структуре папок:
- lib/
- notifications/
- notifications.rb
- group_actions.rb
# notifications.rb
module Notifications
end
# group_actions.rb
class GroupActions
self.do_something
end
# inside a controller
class Api::V1::PostsController < Api::BaseController
include Notifications
.
.
.
def create
Notifications::GroupActions.do_something
end
.
.
.
end
Я также добавил эту строку в "config/application.rb" для автозагрузки моего модуля
# config/application.rb
config.autoload_paths += %W(#{config.root}/lib/notifications)
Это прекрасно работает ИНОГДА, а в других случаях ломает и вызывает ошибку "Неинициализированная константа Notifications::GroupActions"
Это противоречиво, это работает в запросе и вызывает эту ошибку в следующем!... это может работать в течение нескольких дней, перерыв в работе часов и вернуться снова работать
Я заметил, что он всегда работает при первом запросе после перезапуска сервера, если этот совет помогает.
пожалуйста помоги
1 ответ
Я могу ошибаться, но просто дикая догадка. Вы включаете модуль уведомлений (в этом конкретном коде - модуль уведомлений не имеет метода group_actions)
Я вижу, что Вы используете область уведомлений:: GroupActions.do_something.
Угадай 1: Внутри контроллера также есть GroupActions
Угадай 2: Внутри модуля уведомлений добавь еще один модуль
module Notifications
module GroupActions
def self.do_something
Угадай 3:
Попробуй наследовать.
module Notifications < GroupActions
или же
module GroupActions < Notifications
Надеюсь, что любое из этих решений поможет.
Если нет, извините:)