Rails:从控制器返回自定义JSON的最佳方法?

当我在控制器中调用“show”动作时,我正在寻找返回json的最佳方法。我正在使用Rails 2.3.x.

有些事情我想添加,有些我想从对象中删除,然后再返回它,所以只需执行下列操作之一:

respond_to do |format|
  format.json {
    render :json => @object.to_json
  }
end

不一定会奏效。我不希望所有对象都暴露在外。我在想我在这里有两个操作:

  1. 在控制器中创建一个私有帮助器方法,该方法只用我想要的内容构建一个新对象,然后发送它。这里的问题是我有一些视图帮助方法,我无法使用这种方法。
  2. 在show.json.erb视图中手动书写json。这里的问题是,我似乎对谷物不利,并且必须投入大量逻辑来解释尾随逗号和什么。

如果这是我正在返回的HTML,我显然会使用.html.erb文件,并且只包含我想要的内容。但是因为我正在处理JSON,所以似乎我应该处理几乎所有的代码,甚至不处理视图文件。

思考?

0
额外 编辑
意见: 1

1 答案

你应该看看RABL(https://github.com/nesquena/rabl)。然后你可以像这样构建你的show.json.rabl文件:

object @person
attributes :id, :name, :age

Check out this RailsCast on RABL: http://railscasts.com/episodes/322-rabl

Also checkout https://github.com/rails/jbuilder - and the RailsCast: http://railscasts.com/episodes/320-jbuilder

2
额外
看起来很有希望,谢谢
额外 作者 Brian,