加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 路由错误:未初始化的常量

发布时间:2020-12-17 01:21:05 所属栏目:百科 来源:网络整理
导读:我正在尝试为移动API设置路由,该路由应该具有版本化的api路径.我已经可以使移动Auth工作,它在位于/ controllers / api / v1 / mobile /中的单独的Controller AuthController中实现. 用法示例: myapp.com/api/v1/mobile/auth 但是现在我想将我现有的资源 –
我正在尝试为移动API设置路由,该路由应该具有版本化的api路径.我已经可以使移动Auth工作,它在位于/ controllers / api / v1 / mobile /中的单独的Controller AuthController中实现.

用法示例:

myapp.com/api/v1/mobile/auth

但是现在我想将我现有的资源 – 控制器注册到这个路径模式作为附加的api路由.具体:这将是位于/controllers/tracker/tasks_controller.rb的TasksController.所以我添加了路由定义的移动路由:

# 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到这个路由,以避免与上面的原始任务路由发生冲突.任何想法,如何正确设置这个路由器的控制器?

更新#1

将此路由定义为范围而不是命名空间,并不工作.

scope "/api/v1/mobile/tracker" do
    resources :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 / post发布到PostsController(没有Admin :: module前缀),你可以使用:

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读