Ruby on rails rails 5 api:无法访问终结点

Ruby on rails rails 5 api:无法访问终结点,ruby-on-rails,ruby,api,routes,ruby-on-rails-5,Ruby On Rails,Ruby,Api,Routes,Ruby On Rails 5,我正在尝试开始使用rails 5,并构建一个API来使用angular 我有管理员和员工实体,员工创建休假申请,管理员接受或拒绝它 我从管理控制器编码第一个方法开始:索引并检索所有未处理的请求 这是控制器: class Admin::VacationApplicationsController < ApplicationController def index @requests = VacationApplication.where("is_treated = 0").or

我正在尝试开始使用rails 5,并构建一个API来使用angular

我有管理员和员工实体,员工创建休假申请,管理员接受或拒绝它

我从管理控制器编码第一个方法开始:索引并检索所有未处理的请求

这是控制器:

class Admin::VacationApplicationsController < ApplicationController

  def index
    @requests = VacationApplication.where("is_treated = 0").order("created_at ASC")
    render json: @requests, status: :ok
  end

  def acceptRequest

  end

  def rejectRequest

  end


end
启动服务器并导航到此uri时:

我得到了这个错误:

未初始化的常量Admin::VacationApplicationController

此处是rails routes命令输出:

管理员/休假申请获取/管理员/休假申请(:格式)管理员/休假申请索引 发布/管理/休假申请(:格式)管理/休假申请#创建 admin_vacationapplication GET/admin/vacationapplications/:id(:format)admin/vacationapplications#show 补丁/管理员/休假应用程序/:id(:格式)管理员/休假应用程序#更新 PUT/admin/vacationapplications/:id(:格式)admin/vacationapplications#update
DELETE/admin/vacationapplications/:id(:format)admin/vacationapplications#destroy

按照Rails惯例,类名是pascal大小写(将类名中的每个新“单词”大写)。这就是您当前拥有的
类管理员:休假应用程序控制器的方式

当您在其他地方引用这个类时,例如在路由文件中,您将使用snake大小写来匹配类名中的单词分隔。因此,该资源的路径如下所示:

资源:假期应用程序

请注意当前缺少的
休假
应用程序
之间的下划线

您没有共享文件名,只是想补充一点: pascal类名和snake case之间的匹配对于您的文件名是相同的,对于此资源,文件名将是
vacation\u applications\u controller.rb

此外,由于该类具有名称空间,因此它应该位于
controllers
文件夹中的
admin
文件夹中(如果还没有):

app/controllers/admin/vacation\u applications\u controller.rb

Rails.application.routes.draw do
  devise_for :employes
  devise_for :admins

  namespace :admin do
    resources :vacationapplications
    resources :employes
  end


end