2012-05-03 6 views
5

私はJbuilderを使用しています(また、Rablを使ってjsonをレンダリングしようとしました)。 私は自分のアプリケーションでJBuilderのテンプレートをレンダリングしようとすると、それは(「レイアウト/アプリケーション内の」行を参照)レイアウト/アプリケーションファイル内 テンプレートをレンダリングし、JSONとしてHTMLを返します。HAMLは、テンプレートエンジンがHTML以外のレンダリングを行わないようにします。

Rides controller on Github

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) 

私はそれが テンプレートをレンダリングしていないことを自分のアプリケーションで行っているのか分かりません正しく何か案は?

答えて

20

おっと、この問題の原因となっている問題がという 私のレイアウト/アプリケーションファイルであることを確認するのに約2日かかりました。

は、今私は、JSONのためのXMLまたはRablのためにビルダーのようなテンプレートエンジンを使用したいとき、それはlayouts/application.hamlファイルに降伏フィールド内のテンプレートをレンダリングしようとしたので、JSON

としてHTMLを返す私がいることを発見しました問題は、それがapplication.html.hamlうわー、私は同じ問題を抱えていた

+0

...問題を解決して命名application.hamlファイル

内にあります!私は運がないJbuilderを実装しようとしていて、RABLに切り替えて同じプログラムを持っていました。 application.hamlの名前をapplication.html.hamlに変更すると、このトリックが実行されました!ありがとう。 – brent

+0

Upvoted。これは私の問題を解決し、この投稿を見つける時間がかかりました。 – robbie613

+0

Upvoted。これは私の問題を解決し、この投稿を見つける時間がかかりました。 – robbie613

関連する問題