我使用的名称空间如下所示。当我访问http://localhost:3000/api/v1/user_token
时,我得到了这样一个RoutingError错误。我做错了什么。
ActionController::RoutingError (未初始化常量Api::v1::app/controllers/api/v1/user_token_controller.rb:1:in ):app/controllers/api/v1/user_token_controller.rb:3:in
<module:V1>' app/controllers/api/v1/user_token_controller.rb:2:in
‘app/controllers/api/v1/user_token_controller.rb:1:in’
这是我的密码。⬇︎
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
发布于 2017-05-20 00:23:52
module Api
module V1
class UserTokenController < ::Knock::AuthTokenController
end
end
end
::
告诉Ruby在顶层查找Knock
,而不是当前模块嵌套(API::V1
)。
有关深入解释,请参见所有你想知道的关于Ruby常量查找的信息和嵌套Ruby模块时要避免这些陷阱。
https://stackoverflow.com/questions/44082142
复制相似问题