HAML防止模板引擎呈现除HTML之外的任何内容

我正在使用Jbuilder(我也尝试使用Rabl)来渲染json。 当我尝试在我的应用程序中呈现jbuilder模板时,它会在layouts / application文件中呈现模板并将HTML作为JSON返回(请参阅layouts / application’中的行’):

在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) 

但是,当我在没有模板的情况下render json: @ride.as_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) 

我不知道我对我的应用程序做了什么,它没有正确渲染模板。 有任何想法吗?

天哪,我花了两天时间才发现造成这个问题的问题是我的布局/应用程序文件名为aplication.haml

现在,当我想使用Builder for xml或Rabl for json等模板引擎时,它尝试在layouts/application.haml文件的yield字段中呈现模板,从而将html作为JSON返回

我发现问题出在application.haml文件中

将它命名为application.html.haml解决了这个问题……