2017-07-04 9 views
0

私はのconfig/routes.rbをを編集してhttp://localhost:3000/studentsに新しいDELETEメソッドを追加することができます知っている:config/routes.rbの 'do'キーワードの中にDELETEメソッドを追加するには?

resources :students 
delete '/students',:to => 'students#destroymany' 

注:デフォルトでは、唯一の1人の学生を削除するサポートを削除するので、私も欲しいしつつ、http://localhost:3000/students/1 DELETEは異なっていますhttp://localhost:3000/students/(特定の学生IDなし)のDELETEをサポートするには

しかし、それは欠点があります。「students」と繰り返し入力する必要があります。

resources :students do 
    xxx 
end 

に変更する構文はありますか?ただし、最初のバージョンと同じ効果がありますか? 、

No route matches [DELETE] "/students" 

それがあなたの代わりにこれを行うことができます

/students/:student_id 

代わりの

/students 
+0

ご参照ください を破壊し、あなたが任意のIDなしでルートを削除与えるのだろうか? 'resources:students'はそれ自身で削除ルートを与えます。あなたはそれに ':id'を渡す必要があります。あなたがカスタムメソッドのためにそれを必要としない限り、それは必要ではありません! – Pavan

答えて

1

私も は(特定の 学生証なし)http://localhost:3000/students/にDELETEをサポートしたいながら デフォルトでは、唯一の1人の学生を削除する支援をDELETEので、DELETE http://localhost:3000/students/1異なる

それではcollection

resources :students do 
    delete '', :to => 'students#destroymany', on: :collection 
end 
にそれを追加210

これは、以下のルート

DELETE /students(.:format) students#destroymany 

だから、を与える、あなたは単数形のリソースをご利用くださいmethod: :delete

0

へのルーティングを追加するため:

resources :students do 
    delete '',:to => 'students#destroymany' 
end 

をが、エラーが発生します。私が試しましたあなたが達成しようとしているもの:

resource :students do 
    collection do 
    delete '', to: 'students#destroymany' 
    end 
end 
0

/studentsを呼び出すことができます。特異リソースは

resource :students 

DELETE /学生の学生#は別のdeleteメソッドを追加するのはなぜsingular resource

関連する問題