【发布时间】:2019-12-28 13:46:42
【问题描述】:
我正在用设计试验 Rails API。
我正在尝试创建一个 POST 请求,以便用户可以使用电子邮件和密码进行身份验证。为此,我使用devise 和simple token authentication
但是,当我使用邮递员提交我的 POST 请求时,我收到了错误:
ActionController::RoutingError (没有路由匹配 [POST] "/v1/sessions"):
我认为问题在于将帖子发送到:/v1/sessions 而不是api/v1/sessions。
但是,我不明白为什么,因为我声明了我的路由,例如:api-->v1-->sessions
控制器的文件夹结构
路线
Rails.application.routes.draw do
# devise_for :users
namespace :api do
namespace :v1 do
resources :sessions, only: [:create, :destroy]
end
end
end
控制器
class V1::SessionsController < ApplicationController
def create
user = User.where(email: params[:email]).first
if user&.valid_password?(params[:password])
render json: user.as_json(only: [:email, :authentication_token]), status: :created
else
head(:unauthorized)
end
end
def destroy
end
end
【问题讨论】:
标签: ruby-on-rails api devise