简体   繁体   English

Rails路由ActiveRecord :: RecordNotFound错误

[英]Rails Routing ActiveRecord::RecordNotFound Error

I added a new controller action and added correspondent route 我添加了一个新的控制器动作并添加了对应的路由

  def students
    @students = Swimming::Student.all
    render :json => @students
  end


  namespace :swimming do 
    resources :classschedules do
        get 'students', :action => 'students', :as => :students ,:on => :collection
      end 
  end

but when I access this page 但是当我访问此页面时

http://localhost:3000/swimming/classschedules/students

I got this error 我得到这个错误

ActiveRecord::RecordNotFound in Swimming::ClassschedulesController#show

Couldn't find Swimming::Classschedule with id=students

It looks like rails tries to load another route 看起来Rails试图加载另一条路线

GET    /swimming/classschedules/:id(.:format)            swimming/classschedules#show

I am attaching all related routes 我附上所有相关路线

         swimming_classschedules GET    /swimming/classschedules(.:format)                swimming/classschedules#index
                                 POST   /swimming/classschedules(.:format)                swimming/classschedules#create
      new_swimming_classschedule GET    /swimming/classschedules/new(.:format)            swimming/classschedules#new
     edit_swimming_classschedule GET    /swimming/classschedules/:id/edit(.:format)       swimming/classschedules#edit
          swimming_classschedule GET    /swimming/classschedules/:id(.:format)            swimming/classschedules#show
                                 PUT    /swimming/classschedules/:id(.:format)            swimming/classschedules#update
                                 DELETE /swimming/classschedules/:id(.:format)            swimming/classschedules#destroy

    date_swimming_classschedules GET    /swimming/classschedules/date/:date(.:format)     swimming/classschedules#date
students_swimming_classschedules GET    /swimming/classschedules/students(.:format)       swimming/classschedules#students
editnote_swimming_classschedules POST   /swimming/classschedules/editnote/:date(.:format) swimming/classschedules#editnote
                                 GET    /swimming/classschedules(.:format)                swimming/classschedules#index
                                 POST   /swimming/classschedules(.:format)                swimming/classschedules#create
                                 GET    /swimming/classschedules/new(.:format)            swimming/classschedules#new
                                 GET    /swimming/classschedules/:id/edit(.:format)       swimming/classschedules#edit
                                 GET    /swimming/classschedules/:id(.:format)            swimming/classschedules#show
                                 PUT    /swimming/classschedules/:id(.:format)            swimming/classschedules#update
                                 DELETE /swimming/classschedules/:id(.:format)            swimming/classschedules#destroy

How to fix this issue? 如何解决这个问题?

UPDATE * it has been fixed * 更新 * 已修复 *

The issue because I had two blocks of 这个问题是因为我有两个街区

  namespace :swimming do 
    resources :classschedules do

     end 

   end

in routes.rb 在routes.rb中

Copying the answer from the comments in order to remove this question from the "Unanswered" filter: 复制评论中的答案,以便从“未回答”过滤器中删除此问题:

The issue because I had two blocks of 这个问题是因为我有两个街区

 namespace :swimming do resources :classschedules do end end 

in routes.rb 在routes.rb中

~ answer per wwli 〜每个wwli的答案

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM