gpt4 book ai didi

ruby-on-rails - 路由错误 : uninitialized constant

转载 作者:行者123 更新时间:2023-12-03 23:24:56 27 4
gpt4 key购买 nike

我正在尝试为移动 API 设置路由,它应该有一个版本化的 api-path。我已经可以让移动 Auth 工作了,这是在位于 的单独 Controller AuthController 中实现的。/controllers/api/v1/mobile/ .

使用示例:

myapp.com/api/v1/mobile/auth

但是现在我想将我现有的资源 Controller 注册到这个路径模式作为额外的 api 路由。具体:这将是位于 的 TasksController/controllers/tracker/tasks_controller.rb .所以我在路由定义中添加了一条移动路由:
# routes.rb
namespace :tracker, path: 'timetracking' do
resources :tasks, 'jobs'
end

namespace :api do
namespace :v1 do
namespace :mobile do
resources :auth, :only => [:create, :destroy]

namespace :tracker do #added mobile route
resource :tasks, controller: 'tracker/tasks', as: :mobile_tasks
end
end
end
end

但是当我调用 myapp.com/api/v1/mobile/tracker/tasks 它会导致错误消息:
Routing Error
uninitialized constant Api::V1::Mobile::Tracker

我特别添加了别名 :mobile_tasks 到这条路线,以避免与上面的原始任务路线发生任何冲突。任何想法,如何为这条路线正确设置 Controller ?

更新#1

将此路由定义为范围而不是命名空间也不起作用。
scope "/api/v1/mobile/tracker" do
resources :tasks, controller: 'tracker/tasks', as: :mobile_tasks
end

但这一次,它甚至没有解析路由路径本身。
Routing Error
No route matches [GET] "/api/v1/mobile/tracker/tasks"

我认为这可能是一个问题,我的附加移动 api 路由试图指向一个完全不同的命名空间跟踪器。

最佳答案

根据http://guides.rubyonrails.org/routing.html#controller-namespaces-and-routing您应该使用范围而不是命名空间。

如果要路由/admin/postsPostsController (没有 Admin:: module prefix ),您可以使用:

scope "/admin" do
resources :posts, :comments
end

关于ruby-on-rails - 路由错误 : uninitialized constant,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10285124/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com