RailsアプリケーションにたとえばGET /foo
ってリクエストを投げると、ActionDispatchあたりでGET /foo.html
として解釈してコントローラに処理が渡る。GET /foo.json
みたいに拡張子がついていれば補完されずに処理が渡る。
でもAPIサーバを作ってる時はデフォルトで.json
で補完してくれるほうが嬉しい。*1
そんなときはroutes.rbでdefaults
オプションを指定する。
post "/foo" => "foo#index", defaults: { format: "json" } resources :foos, defaults: { format: "json" } match 'foos/:id' => 'foos#show', defaults: { format: "json" }
namespace
でも効くのかな。試してない。
@satococoaさんありがたやー。
@ikm routes.rb で resources :hoge, defaults: {format: 'json'} つけてみるとか。。?
— Satoshi Ebisawa ☃ (@satococoa) June 14, 2013
参考
追記
namespace
でも有効だった。
*1:そんな曖昧でいいのかというのはある