我有一个小型应用程序,为了避免代码重复,我使用了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
在:controllers / concerns / messages.rb
require 'active_support/concern'
module Messages
extend ActiveSupport::Concern
def get_messages(conversation_type, messages_amount)
....
end
end
在controllers / 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一起使用它会更好。 >
有什么想法吗?
非常感谢您!
编辑:
我将模块“ Messages”重命名为“ Messageable”(以及相关文件),现在可以了。