私は Jbuilder を使用しています (そして、Rabl も使用しようとしました) json をレンダリングします。アプリケーションで jbuilder テンプレートをレンダリングしようとすると、レイアウト/アプリケーションファイル内のテンプレートがレンダリングされ、 HTMLが JSON として返されます (「レイアウト/アプリケーション内」の行を参照)。
Started GET "/random_photo.json"
Processing by RidesController#random_photo as JSON
>> Rendered rides/random_photo.json.jbuilder within layouts/application (0.3ms)
Rendered shared/_banners_in_corners.haml (3.0ms)
Rendered shared/_sign_in_and_out.haml (2.0ms)
Rendered layouts/_navigation.haml (7.3ms)
Completed 200 OK in 156ms (Views: 120.7ms | ActiveRecord: 3.1ms)
ただし、テンプレートを使用せずに json をレンダリングしてrender json: @ride.as_json
呼び出しを行うと、期待どおりに動作します。新しいアプリケーションを作成して同じことをしようとすると、すべてが期待どおりに機能します。
Started GET "/posts/1.json"
Processing by PostsController#show as JSON
Post Load (0.1ms) SELECT "posts".* FROM "posts" WHERE "posts"."id" = ? LIMIT 1 [["id", "1"]]
Rendered posts/show.json.jbuilder (0.6ms)
Completed 200 OK in 20ms (Views: 19.2ms | ActiveRecord: 0.1ms)
テンプレートを正しくレンダリングしていないアプリケーションで何をしたかわかりません。何か案は?