Ruby on rails HAML防止模板引擎呈现HTML以外的任何内容

Ruby on rails HAML防止模板引擎呈现HTML以外的任何内容,ruby-on-rails,json,haml,rabl,jbuilder,Ruby On Rails,Json,Haml,Rabl,Jbuilder,我正在使用Jbuilder(我还尝试使用Rabl)来呈现json。 当我尝试在应用程序中呈现jbuilder模板时,它会呈现 layouts/application文件中的模板,并将HTML作为JSON返回(请参见第行“在layouts/application中”): 但是,当我在没有模板的情况下呈现json,并执行呈现json:@ride.as_json调用时,一切都按预期进行。 当我创建一个新的应用程序并尝试做同样的事情时,一切都按预期进行: Started GET "/posts/1.j

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

但是,当我在没有模板的情况下呈现json,并执行
呈现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

现在,当我想使用一个模板引擎(比如builderforxml或rablforjson)时,它试图在
layouts/application.haml
文件的yield字段中呈现模板,从而将html作为json返回

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


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

哇,我也遇到了同样的问题!我在尝试实现Jbuilder时运气不佳,切换到RABL并使用了相同的程序。将application.haml重命名为application.html.haml成功了!谢谢,我投了赞成票。这解决了我的问题,花了几个小时找到这个帖子。这解决了我的问题,花了几个小时找到了这个帖子。感谢分享解决方案,我们也遇到了同样的问题。花了几个小时才找到你的帖子。谢谢,即使三年后也帮了我!
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)