RubyOnRailsでformatルーティングを無効にする方法
App::Application.routes.draw do
resources :entry do
match "search/:query", :action => :search, :on => :collection
end
end
みたいなルーティング定義をすると
- /entry/search/:query(.:format) entry#search
なルーティング定義になる。だけどこの:formatは要らんって思った場合どうすればいいのかって調べてみたら、:format => falseを渡せば良いらしい
match "search/:query", :action => :search, :on => :collection, :format => false
rake routesすると
- /entry/search/:query entry#search
みたいに出力される。respond_toによってはブラウザから普通にURLアクセスしてもアクセス出来なくなるかと
参考: http://stackoverflow.com/questions/4579652/disable-format-routes-in-rails3
余談
resources :entry, :format => false do
end
みたいにやっても良い模様。この場合、この:entryが参照するアクションにformatを指定する事ができなくなり、respond_toで指定されているフォーマット以外でアクセスするとHTTP 406エラーになる模様