Ruby on rails 为什么我的rails页面总是显示html标题?

Ruby on rails 为什么我的rails页面总是显示html标题?,ruby-on-rails,Ruby On Rails,在my data_feed controller和bar action中,bar.html.erb中只有一行: [1,2,3,4] 我请求的预期输出只是我上面写的一行 但是,rails帮助我将一些html头添加到该页面中,如下所示: <!DOCTYPE html> <html> <head> <title>Guustock</title> <link href="/assets/application.css?body=1" m

在my data_feed controller和bar action中,bar.html.erb中只有一行:

[1,2,3,4]
我请求的预期输出只是我上面写的一行

但是,rails帮助我将一些html头添加到该页面中,如下所示:

<!DOCTYPE html>
<html>
<head>
<title>Guustock</title>
<link href="/assets/application.css?body=1" media="all" rel="stylesheet" type="text/css" />
<link href="/assets/charts.css?body=1" media="all" rel="stylesheet" type="text/css" />
<link href="/assets/data_feed.css?body=1" media="all" rel="stylesheet" type="text/css" />
<link href="/assets/show.css?body=1" media="all" rel="stylesheet" type="text/css" />
<script src="/assets/jquery.js?body=1" type="text/javascript"></script>
<script src="/assets/jquery_ujs.js?body=1" type="text/javascript"></script>
<script src="/assets/charts.js?body=1" type="text/javascript"></script>

<script src="/assets/data_feed.js?body=1" type="text/javascript"></script>
<script src="/assets/show.js?body=1" type="text/javascript"></script>
<script src="/assets/application.js?body=1" type="text/javascript"></script>
<meta content="authenticity_token" name="csrf-param" />
<meta content="lhHWCW82xtqQ8fmgBZemDggL2DGJe+4chXM8MY1LKvs=" name="csrf-token" />
</head>
<body>
[1,2,3,4]

古斯托克
[1,2,3,4]
如何避免rails这样做? 谢谢

环境: linux mint 11.0 带rvm的ruby 1.9.3 轨道3.2.1

编辑:


实际上,我想在这个页面中提供json格式的数据作为ajax数据源。因此,这些标题将不会有帮助,但会破坏数据。

您可能正在默认布局(位于app/views/layouts/中的视图模板)中进行渲染。如果要渲染没有布局的动作,请使用

render :bar, :layout => false
在适当的行动中

另见:

编辑:

请参阅上面链接的文档。对于JSON呈现,您可以直接从控制器使用:

render :json => @product
还是你的情况

render :json => [1,2,3,4]
您还可以使用JSON视图模板(需要再次渲染)。在json中使用bar.html.erb模板不仅像您注意到的那样棘手,而且还会产生错误的内容类型标题