Rails API - 没有路由匹配 [POST]
Rails API - No route matches [POST]
我正在试验 Rails API 的设计。
我正在尝试创建一个 POST 请求,以便用户可以使用电子邮件和密码进行身份验证。为此,我使用 devise
和 simple token authentication
然而,当我使用 postman 提交我的 POST 请求时,我收到错误:
ActionController::RoutingError (No route matches [POST] "/v1/sessions"):
我认为问题是将 post 发送到:/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
应该改为classApi::V1::SessionsController < ApplicationController
吗?
我正在试验 Rails API 的设计。
我正在尝试创建一个 POST 请求,以便用户可以使用电子邮件和密码进行身份验证。为此,我使用 devise
和 simple token authentication
然而,当我使用 postman 提交我的 POST 请求时,我收到错误:
ActionController::RoutingError (No route matches [POST] "/v1/sessions"):
我认为问题是将 post 发送到:/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
应该改为classApi::V1::SessionsController < ApplicationController
吗?