Почему ActiveSupport :: Concern повторно запускает NoMethodError? - PullRequest
0 голосов
/ 21 января 2019

У меня небольшое приложение, и во избежание дублирования кода я использовал ActiveSupport :: Concern, но что-то не так, и я постоянно получаю сообщение:

NoMethodError in Private::MessagesController#index

undefined method `get_messages' for #<Private::MessagesController:0x00007f644687de88>

Приложение работает на

Rails version             5.2.2;
Ruby version              2.5.3-p105 (x86_64-linux);
RubyGems version          2.7.6;
Rack version              2.0.6

в: контроллеры / проблемы / messages.rb

require 'active_support/concern'
module Messages
  extend ActiveSupport::Concern
  def get_messages(conversation_type, messages_amount)
  ....
  end
end

в контроллерах / private / messages_controller.rb

class Private::MessagesController < ActionController::Base
  include Messages
  def index
    get_messages('private', 10)
    ....
  end 
end

Я провел много исследований, но мне не удалось решить проблему.

В качестве альтернативы я переместил

def get_messages(conversation_type, messages_amount)

в controllers / private / messages_controller.rb, и похоже, что он работает, но я хочу использовать точно такой же метод в другом контроллере, поэтому было бы лучше, если мне удастся использовать его с ActiveSupport :: Concern

Есть идеи?

Большое спасибо!

EDIT:

Я переименовал модуль «Сообщения» в «Сообщения» (и связанные файлы), и теперь все в порядке.

...