Rails,覆盖{:json =>的输出@model}

时间:2012-03-06 21:56:47

标签: ruby-on-rails-3

我喜欢在Rails中添加json数据的不同方式。

问题是我不希望每一行的所有字段名称,只是一个包含每列数据的数组,而且设置某种类型的过滤器以便您可以选择哪些列会很好你想要在JSON输出中

目前我在控制器中:

respond_to do |format|
      format.html # show.html.erb
      format.json { render :json => @person }
end

我想做的事情如下:

format.json { render :json2 => @person }

因此,在控制器的这个特定操作中,JSON数据的格式不同(:json2)。我在看:

ActionController.add_renderer :json2 do |json, options|

但是我无法解决这个问题。我开始了吗?我确实希望它以与'default'json渲染器相同的方式运行它。所以每个视图中没有单独的index.json2.erb文件。如果我可以在数组中添加一些额外的字段,那就更好了:

format.json { render :json2 => @person, :table = 'xyz', :columns = ['a', 'b'] }

我读过Yehuda Katz,但我仍然无法理解。

1 个答案:

答案 0 :(得分:1)

我认为覆盖to_json方法会很棒。这是一个类似的问题。

How to override to_json in Rails?