Geo*_*haw 12 routes ruby-on-rails-3 railstutorial.org
在Ruby on Rails 3教程中,代码使用:
match '/signup', :to => 'users#new'
match '/signin', :to => 'sessions#new'
match '/signout', :to => 'sessions#destroy'
match '/contact', :to => 'pages#contact'
match '/about', :to => 'pages#about'
match '/help', :to => 'pages#help'
Run Code Online (Sandbox Code Playgroud)
而不是
get '/signup', :to => 'users#new'
get '/signin', :to => 'sessions#new'
get '/signout', :to => 'sessions#destroy'
get '/contact', :to => 'pages#contact'
get '/about', :to => 'pages#about'
get '/help', :to => 'pages#help'
Run Code Online (Sandbox Code Playgroud)
即使所有路由只需要HTTP GET动词.为什么不在实践中使用get(或:via => [:get]打开match)并限制路由操作?
emr*_*ass 23
我认为最好的做法是使用get [...]而不是match.正如您已经正确提到的那样,match将创建GET和POST路由.如果您不需要它们,为什么要创建它们?
使用正确的匹配器(获取或发布)可以保持路由清洁,并有助于防止应用程序出现意外行为.后一点尤其适用于POST路由,您不希望在您的网页上意外地发出GET请求链接,搜索机器人可以跟随该路径.
更新[2013-05-12]:从Rails 4.0开始,您现在需要明确指定请求方法.