You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ActiveAdmin创建评论报错:undefined method `create!' for Admin::CommentsController

ActiveAdmin 创建评论时出现 NoMethodError 错误解决方法

问题描述

在使用ActiveAdmin为任意模型创建评论时,触发如下错误:

NoMethodError in Admin::CommentsController#create
undefined method `create!' for #Admin::CommentsController:0x00007f9a6b2a5640 Did you mean? create

使用版本:ActiveAdmin 2.13.1、Ruby 3.2、Rails 6.1,错误出自 activeadmin (2.13.1) lib/active_admin/orm/active_record/comments.rb:66:in create'`

解决办法

1. 检查自定义评论控制器是否覆盖默认逻辑

查看项目中是否存在 app/controllers/admin/comments_controller.rb 文件:

  • 若不需要自定义逻辑,直接删除该文件,恢复ActiveAdmin默认的评论控制器。
  • 若需要自定义,确保继承自ActiveAdmin的评论控制器,且不错误重写create方法,如需重写请正确调用父类方法:
    class Admin::CommentsController < ActiveAdmin::CommentsController
      def create
        super
        # 自定义逻辑代码
      end
    end
    

2. 排查版本兼容性问题

尝试更新ActiveAdmin到兼容Rails 6.1的最新版本:

bundle update activeadmin

更新完成后重启服务器,验证问题是否解决。

3. 检查命名冲突或方法覆盖

通过控制台排查控制器的方法定义,确认是否有其他代码覆盖了create!方法:

Rails.application.eager_load!
puts Admin::CommentsController.instance_methods.grep(/create/)

若发现异常方法,找到对应的定义文件并调整,避免命名冲突。

内容的提问来源于stack exchange,提问作者marimaf

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 21:45:34