没有路由匹配[PUT],但是定义了资源和方法

时间:2018-04-05 16:21:22

标签: ruby-on-rails ruby rest

我使用邮递员提出PUTPATCH请求,但它说No route matches [PUT] "/api/registrations"

我的网址看起来像这样

http://localhost:3000/api/registrations?id=5&status=approved"

我的routes.rb文件:

Rails.application.routes.draw do
  scope :api do
    resources :professors
    resources :registrations
    resources :schedules
    resources :notifications
    resources :users
    resources :meetings
    resources :courses
    resources :students
  end
end

我的RegistrationsController中有一个已定义的update方法,我的POST和GET路由可以正常工作。

2 个答案:

答案 0 :(得分:2)

您正在使用的网址不详。您不应在查询中传递id,而应在路径中传递。

正确的网址是

http://localhost:3000/api/registrations/5?status=approved

Rails将id设置为资源路由的最后一个元素。

Docs说:

  

resources :photos

     

(...)

     

PATCH/PUT /photos/:id photos#update更新特定照片

答案 1 :(得分:0)

在命令行上运行rails routes以获取正确的URL模式,并且它与Controller操作匹配。