2017-05-20 13 views
0

私は以下のような名前空間を使用しています。 http://localhost:3000/api/v1/user_tokenにアクセスすると、 このようなRoutingErrorエラーが発生しました。私は間違っている。RoutingError about Knock]

ActionController :: RoutingError(初期化されていない一定のアピ:: V1 ::ノック): アプリ/コントローラ/ API/V1/user_token_controller.rb:3:<module:V1>' app/controllers/api/v1/user_token_controller.rb:2:inで ' アプリ/コントローラ/ API/V1/user_token_controller .rb:1: `で '

ここに私のコードです。 ⬇︎

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 
+0

'rake routes'を実行して共有します。 –

+0

@ Md.FarhanMemonはRubyの定数検索エラーです。ルートは無関係です。 – max

+0

そうです。私は、認証のための "ノック"と呼ばれる宝石を使用してイム://github.com/nsarno/knock –

答えて

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

::は目にKnockをルックアップするためにルビーを伝えます現在のモジュールのネスト(API::V1)の代わりに最上位のeレベルになります。

詳しくは、Everything you ever wanted to know about constant lookup in RubyおよびAvoid these traps when nesting Ruby modulesを参照してください。

+0

それは私のために働いた!!!!ありがとうございました!!!! –