关于Knock的RoutingError错误]

时间:2017-05-20 05:07:47

标签: ruby-on-rails jwt

我正在使用如下的命名空间。当我访问http://localhost:3000/api/v1/user_token时, 我收到了像这样的RoutingError错误。我做错了什么。

  

ActionController :: RoutingError(未初始化的常量Api :: V1 :: Knock):     app / controllers / api / v1 / user_token_controller.rb:3:in <module:V1>' app/controllers/api/v1/user_token_controller.rb:2:in&#39;     app / controllers / api / v1 / user_token_controller.rb:1:在`&#39;

这是我的代码。 ⬇︎

routes.rb

Rails.application.routes.draw do
  namespace :api, format: 'json' do
    namespace :v1, format: 'json' do
      post 'user_token' => 'user_token#create'
    end
  end
end

users_token_controller.rb

module Api
  module V1
    class UserTokenController < Knock::AuthTokenController
    end
  end
end

application_controller.rb

class ApplicationController < ActionController::Base
  include Knock::Authenticable
end

1 个答案:

答案 0 :(得分:1)

module Api
  module V1
    class UserTokenController < ::Knock::AuthTokenController
    end
  end
end

::告诉Ruby在顶层查找Knock而不是当前模块嵌套(API::V1)。

请参阅Everything you ever wanted to know about constant lookup in RubyAvoid these traps when nesting Ruby modules进行深入解释。