ruby-on-rails - 为什么 ActiveSupport::Concern 会返回 NoMethodError?
问题描述
我有一个小型应用程序,为了避免代码重复,我使用了 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
在控制器/私人/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”(以及相关文件),现在可以了。
解决方案
推荐阅读
- html - 如何在绝对位置上全屏显示输入字段
- json - 尝试从 JSON 响应中的列表中获取值
- reactjs - 带有 NextJS API 的 FormData
- python - python 二维列表一次更改一整列?
- angular - 错误:NG0100:sidenav 角度材料中的 ExpressionChangedAfterItHasBeenCheckedError
- linux - Flatpak 回购对象文件夹为空?
- postgresql - postgres 密码错误:请输入用户 'postgres' 的密码以连接服务器 - “PostgreSQL 13”
- javascript - React D3.js 渲染多个树形图
- python - Python时间表“时间冻结”
- sql - 为每一行生成一个 JSON 值数组