为什么我得到未初始化的常量Api :: SessionsController:错误?

问题描述 投票:0回答:1

我一直收到此错误消息:

NameError - uninitialized constant Api::SessionsController:

但是我已经仔细检查了,我的路由配置看起来正确:

Rails.application.routes.draw do
  namespace :api, defaults: {format: :json} do 
    resources :users, only: :create
    resource :session, only: [:create, :destroy]
  end 

  root 'static_pages#root'
end

我的控制器也使用单数session

class Api::SessionController < ApplicationController
  def create
    @user = User.find_by_credentials(
      params[:user][:username],
      params[:user][:password]
    )
    if @user 
      log_in(@user)
      render 'api/users/show'
    else 
      render json: ['Your request failed. Please try again.'], status: 401
    end
  end

我的文件夹结构如下:

enter image description here

ruby-on-rails routing
1个回答
0
投票

铁路有很好的官方指南。

会话是一个没有引用ID的singular resource

因为可能要对单条路径(/account)和复数路径(/accounts/45)使用相同的控制器,所以单数资源映射到多个控制器。因此,例如,resource :photoresources :photos创建映射到同一控制器(PhotosController)的单数和复数路由。

因此您需要将控制器重命名为Api::SessionsController

© www.soinside.com 2019 - 2024. All rights reserved.