У меня небольшое приложение, и во избежание дублирования кода я использовал 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:
Я переименовал модуль «Сообщения» в «Сообщения» (и связанные файлы), и теперь все в порядке.