【问题标题】:Rails API - No route matches [POST]Rails API - 没有路线匹配 [POST]
【发布时间】:2019-12-28 13:46:42
【问题描述】:

我正在用设计试验 Rails API。 我正在尝试创建一个 POST 请求,以便用户可以使用电子邮件和密码进行身份验证。为此,我使用devisesimple 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


    【解决方案1】:

    应该改为Api::V1::SessionsController &lt; ApplicationController 类吗?

    【讨论】:

    • 谢谢。那是个问题。此外,我在错误的网址上使用邮递员。我使用的是localhost:3000/v1/ 而不是localhost:3000/api/v1/
    猜你喜欢
    • 2013-12-31
    • 1970-01-01
    • 1970-01-01
    • 2021-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多