【问题标题】:rails 5 api : cannot access to endpointrails 5 api:无法访问端点
【发布时间】:2017-12-09 22:50:48
【问题描述】:

我正在尝试开始使用 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

这里是 route.rb 文件:

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

  namespace :admin do
    resources :vacationapplications
    resources :employes
  end


end

当启动服务器并导航到这个 uri 时:

http://localhost:3000/admin/vacationapplications

我收到了这个错误:

未初始化的常量 Admin::VacationapplicationsController

这里是 rails routes 命令输出:

admin_vacationapplications GET /admin/vacationapplications(.:format) admin/vacationapplications#index POST /admin/vacationapplications(.:format) admin/vacationapplications#create admin_vacationapplication GET /admin/vacationapplications/:id(.:format) admin/vacationapplications#show 补丁 /admin/vacationapplications/:id(.:format) admin/vacationapplications#update PUT /admin/vacationapplications/:id(.:format) admin/vacationapplications#update 删除 /admin/vacationapplications/:id(.:format) admin/vacationapplications#destroy

【问题讨论】:

    标签: ruby-on-rails ruby api routes ruby-on-rails-5


    【解决方案1】:

    按照 Rails 约定,类名是帕斯卡大小写(类名中的每个新“单词”都大写)。这就是您目前拥有class Admin:VacationApplicationsController 的方式。

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

    resources :vacation_applications

    注意vacationapplications 之间的下划线,您当前缺少该下划线。

    您还没有分享您的文件名,只是为了补充一点: pascal 类名和蛇大小写之间的这种匹配对于您的文件名是相同的,对于此资源,这将是 vacation_applications_controller.rb

    此外,由于这个类是命名空间的,它应该在你的 controllers 文件夹中的 admin 文件夹中(如果还没有的话):

    app/controllers/admin/vacation_applications_controller.rb

    【讨论】:

      猜你喜欢
      • 2021-05-26
      • 1970-01-01
      • 1970-01-01
      • 2022-01-13
      • 1970-01-01
      • 2018-07-12
      • 2016-08-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多