我一直收到此错误消息:
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
我的文件夹结构如下:
铁路有很好的官方指南。
会话是一个没有引用ID的singular resource。
因为可能要对单条路径(
/account
)和复数路径(/accounts/45
)使用相同的控制器,所以单数资源映射到多个控制器。因此,例如,resource :photo
和resources :photos
创建映射到同一控制器(PhotosController
)的单数和复数路由。因此您需要将控制器重命名为
Api::SessionsController
。