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

时间:2012-05-03 04:18:29

标签: ruby-on-rails json haml rabl jbuilder

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

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)

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

1 个答案:

答案 0 :(得分:20)

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

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

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

命名它application.html.haml解决了问题......

相关问题