为什么会出现未初始化的常量Api :: SessionsController:错误?

时间:2020-01-28 19:15:22

标签: ruby-on-rails routing

我不断收到此错误消息:

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

2 个答案:

答案 0 :(得分:0)

铁路有很好的官方指南。

会话是singular resource,没有引用ID。

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

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

答案 1 :(得分:0)

如果要保持原样设置。

{{1}}