Ruby on rails rails 5 api:无法访问终结点
我正在尝试开始使用rails 5,并构建一个API来使用angular 我有管理员和员工实体,员工创建休假申请,管理员接受或拒绝它 我从管理控制器编码第一个方法开始:索引并检索所有未处理的请求 这是控制器: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
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