我想知道关于在 Rails 中使用映射到“销毁”操作的 GET 请求的约定是什么。我正在检查RailsCast 的身份验证,Ryan 选择将 GET 请求映射到 session#destroy 操作,这样他就可以使用简单的锚标记链接到它,而不是使用 form_for/button_to 帮助器来生成包含_method:删除属性:
Auth::Application.routes.draw do
get "log_in" => "sessions#new", :as => "log_in"
get "log_out" => "sessions#destroy", :as => "log_out"
get "sign_up" => "users#new", :as => "sign_up"
root :to => "users#new"
resources :users
resources :sessions
end
我的印象是这不是应该的,但 Ryan Bates 是 Rails 的创造者之一,所以我想知道这是否真的像我一直相信的那样重要。
这种路由实现是否有任何严重的缺点,或者它主要是一种旨在提高清晰度的风格约定?