Ruby on rails 带有jquery数据表的RABL

Ruby on rails 带有jquery数据表的RABL,ruby-on-rails,datatables,rabl,Ruby On Rails,Datatables,Rabl,在我的rails应用程序中,我使用RABL,在前端,我使用jquery datatables查看数据列表(实际上是使用带有datatable指令的angular) 我正在尝试实现一个稍微不同的 在RABL本身中处理这个问题有很多方法,但是我更希望在我的控制器中有一个函数,用额外的参数包装RABL结果 例如,在我的控制器中,我希望有一个 respond_with_datatable(@books) 然而,这个方法以某种方式调用respond_with(@books)方法,只返回foo的json数

在我的rails应用程序中,我使用RABL,在前端,我使用jquery datatables查看数据列表(实际上是使用带有datatable指令的angular)

我正在尝试实现一个稍微不同的

在RABL本身中处理这个问题有很多方法,但是我更希望在我的控制器中有一个函数,用额外的参数包装RABL结果

例如,在我的控制器中,我希望有一个

respond_with_datatable(@books)
然而,这个方法以某种方式调用respond_with(@books)方法,只返回foo的json数组,在这个方法中,我可以设置适当的响应:

{
"sEcho": 1,
"iTotalRecords": 53,
"iTotalDisplayRecords": 10,
"aaData": [book_array]
}

我不相信有一种方法我可以调用,它只做respond_with(object)所做的事情,只捕获json而不响应。在控制器中使用方法的好处是,我不需要更改RABL,并且在某些情况下我希望返回额外的数据表格式,而在其他情况下我不需要。在控制器中进行控制是理想的。感谢您的帮助

您可以使用
render_to_string
将RABL模板渲染为字符串,然后从中处理它。例如,您可以将其解析回JSON,然后对其进行操作或将其嵌入到更大的JSON结构中。然后,您可以使用
render
直接响应新数据

我刚刚在我的应用程序中测试了这个

def index
  @galleries = Gallery.all # or whatever
  respond_with_datatable
end

def respond_with_datatable
  template_json = JSON(render_to_string)
  json = {:new_data => "some new stuff", :orig_data => template_json}
  render :json => json
end