设置activeadmin gem后的Rails api脚手架问题

Posted

技术标签:

【中文标题】设置activeadmin gem后的Rails api脚手架问题【英文标题】:Rails api scaffold issue after setting activeadmin gem 【发布时间】:2019-03-30 13:30:32 【问题描述】:

我刚开始使用 rails-api,我想为后端实现一些管理用户界面。因为我习惯了 activeadmin gem,所以我在这里尝试使用它。我按照一些步骤来启用运行它所需的中间件,因为它处于 API 模式。

其中一个步骤是在application_controller.rb 中更改以下内容:

class ApplicationController < ActionController::API
end

class ApplicationController < ActionController::Base
end

然后创建一个api_controller.rb并使其继承自ActionController::API

class ApiController < ActionController::API
end

按照这些步骤,我的 activeadmin 运行良好。我的问题是,现在当我尝试运行 rails generate scaffold 命令来生成新模型时,它会停在

invoke  inherited_resources_controller

并抛出下一个错误:

Could not find "api_controller.rb" in any of your source paths.

我想我可以手动控制控制器,它会很好(?),但我仍然想知道为什么会发生这种情况以及如何解决它,因为它可以节省我的时间。

【问题讨论】:

This closed IR PR 可能是相关的,您的解决方案看起来不错。 【参考方案1】:

经过大量阅读,我解决了我的问题,将其添加到我的application.rb

config.app_generators.scaffold_controller = :scaffold_controller

【讨论】:

以上是关于设置activeadmin gem后的Rails api脚手架问题的主要内容,如果未能解决你的问题,请参考以下文章

Rails6 禁用所有非 ActiveAdmin 页面的 ActiveAdmin 布局

PostsController #index中的NameError

ActiveAdmin - 未初始化的常量 AdminUser

在 Rails 5 应用程序中使用 ActiveAdmin 创建用户个人资料页面

Rails 3. 如何添加 ActiveAdmin 将使用的助手?

如何在 ActiveAdmin 表单块中使用 rails 6 ActionText 字段