RailsはデフォルトでJSONがView Railsをつかっていると、デフォルトでjbuilderというgemが含まれていて、JSONを返すレスポンをさばくとき、JSONは viewとして扱うようになっています。 jbuilderを使っていれば、処理は同じでレスポンスのフォーマットだけが違う。みたいなアクションを作りたいとき、すごくすっきり書けます。 class ProductsController < ApplicationController def show @product = Product.find(params[:id) end end 上のように書いておけば、リクエストのフォーマットに応じてHTMLテンプレファイルかJSONのDSLファイルか適切なものを探してそれをレンダリングして返してくれます。 HTMLとJSONが単にフォーマットが違うだけ。という扱いがされているから
![JSONはViewなのか - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/64edc26c01ee212f473f259d36d98737550ef046/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZoPTMzNiZ0eHQ9SlNPTiVFMyU4MSVBRlZpZXclRTMlODElQUElRTMlODElQUUlRTMlODElOEImdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT01NiZ0eHQtY2xpcD1lbGxpcHNpcyZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZzPTQxMTUxZGJmMTdjMjMxYTIyZmNmMTAwMjkyODNhNThk%26mark-x%3D142%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTYxNiZ0eHQ9JTQwaGFkYXNoaUEmdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT0zNiZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZzPWQ3YzhiNTA1YjkxNzk3ZDA1MDkzMjBjYWZhMmRlYmNm%26blend-x%3D142%26blend-y%3D491%26blend-mode%3Dnormal%26s%3Dcc2d8dec1fe222d48b532428304befd5)