【发布时间】:2019-06-14 13:44:43
【问题描述】:
我在使用Grape 时遇到了一个非常奇怪的问题。
该项目的结构不是最简单的,但仍然非常简单明了,我在 Rails 应用程序中有一个 app/api 文件夹,其中 API 类的结构或多或少像这样:
class Api < Grape::API
prefix 'api/v2'
...
mount V2::Controller::User
...
end
然后我在app/api/v2/ 下有几个类来完成他们的工作,分为控制器、模型、服务、验证器等,通常的东西。
遵循 Grape 官方文档,所有内容都“安装”在 config/application.rb 中(我不会重复,唯一改变的是文件夹的名称。
我必须添加另一个端点,而不是“api / v2” 987654328@ 类,更改前缀和其他一些小东西,+ app/api/internal 下的端点。
我可以运行rails c 并执行InternalApi.new,结果与预期一致,app/api/internal 下的端点显然已加载。
不幸的是,当运行应用程序时,新端点不存在,我不明白为什么它有这种行为。
我检查了ActiveSupport::Dependencies.autoload_paths,一切正常,我还应该检查什么,这可能是什么原因?我还安装了https://github.com/syedmusamah/grape_on_rails_routes,它显示了app/api/v2 下的所有路由,app/api/internal 下没有任何内容。是否有可能一个端点遮蔽了另一个端点?
【问题讨论】: