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

Ruby on rails Rails:从控制器返回自定义JSON的最佳方法?,ruby-on-rails,json,Ruby On Rails,Json,我正在寻找在控制器中调用“show”操作时返回json的最佳方法。我正在使用Rails 2.3.x 在返回对象之前,我想添加一些内容,并从对象中删除一些内容,因此只需执行以下操作之一: respond_to do |format| format.json { render :json => @object.to_json } end 不一定行得通。我不想让那个物体里的所有东西都暴露出来。我想我在这里有两个手术: 在控制器中创建一个private helper方法,该方法构

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

在返回对象之前,我想添加一些内容,并从对象中删除一些内容,因此只需执行以下操作之一:

respond_to do |format|
  format.json {
    render :json => @object.to_json
  }
end
不一定行得通。我不想让那个物体里的所有东西都暴露出来。我想我在这里有两个手术:

  • 在控制器中创建一个private helper方法,该方法构建一个只包含我想要的内容的新对象,并将其发送。这里的问题是,我有一些视图助手方法,我无法使用这种方法
  • 在show.json.erb视图中手动写出json。这里的问题是,我似乎违反了规则,必须加入大量的逻辑来解释后面的逗号之类的东西
  • 如果这是我返回的HTML,我显然只会使用一个.HTML.erb文件,并且只在其中包含我想要的内容。但由于我处理的是JSON,似乎我应该处理代码中的几乎所有内容,而不是处理视图文件


    想法?

    你应该看看RABL(https://github.com/nesquena/rabl). 然后您可以构建show.json.rabl文件,如下所示:

    object @person
    attributes :id, :name, :age
    
    查看RABL上的RailsCast:

    还包括结帐和RailsCast: