使用RoR将数据渲染到标题中

时间:2012-04-02 10:29:26

标签: ruby-on-rails model-view-controller ruby-on-rails-3.2

我正在开发一个用RoR(3.2)编写的小型REST API,我将在Varnish Cache实例后面使用它。

Varnish的cURL VMOD将调用此API来处理用户数量限制。

最重要的是Varnish不擅长处理HTTP数据,除了标题。

所以我想将数据字段作为HTTP标头返回(最多3个字段),但我不确定如何以适当的MVC方式执行此操作。

标题可以被视为有效的视图或呈现格式吗?

是否应在控制器或视图中写入标题? (知道返回的数据将来自2个模型)。

另请注意,我将来必须处理常见的html和json输出。

我知道无论如何这将是一个肮脏的黑客,但请相信我:要求Varnish在响应体上工作,更糟糕的是在json或XML上,x10会更脏......

谢谢!

2 个答案:

答案 0 :(得分:1)

如果您想要轻量级应用程序而不调用View管道,请坚持使用标题。

API调用使用标头向客户端发送信息(保持简单)。

在调用视图之前,应该在控制器中写入标头,因为HTTP标头位于正文之前。

您目前可以为视图执行render => :nothing,只要您想要集成json或xml,就可以添加respond_to操作。

答案 1 :(得分:0)

我想说这是你可以在控制器中设置的东西。看看这个,看看它是否有助于你:

http://work.j832.com/2008/10/ruby-rails-render-and-content-type-http.html

我建议在控制器中执行此操作,因为它听起来好像标题将独立于您呈现的视图。