次のレールルートがあります
resources :apps do
post "name/:text/,
:on => :member, :action => :register, :as => :register,
:text => /[^\/]+/
end
json 形式でヒットする URL は次のとおりです。
curl -v -s -H "Content-type: application/json" -d '' -X POST http://0.0.0.0:3000/apps/1/name/hello.json
.json
Rails コントローラが上記のリクエストを受信すると、URL の末尾にある が URL エンコーディング/拡張子の一部であり、hello の一部ではないことがわかりません。パラメータは次のように表示されます。
Parameters: {"id"=>"1", "text"=>"hello.json"}
持つ代わりに"text" => "hello"
。
respond_to :json
AppsControllerにもあります。
なぜこれが起こるのか分かりますか?レールを解析させる方法は.json
?