1

にはhas_many :comments関連付けがあります

車を返却するには、次の方法があります。

 class Api::V1::CarsController < Api::V1::BaseController
  def recent
      recent = Car.most_recent(params[:how_recent])
      comments = recent.each{|r| r.comments} ## ??
      respond_with(:recent => recent)
    end
  end

最近の車は次の方法で入手します。

curl -X GET http://cars.dev/api/v1/cars/recent -d "token=zzxWkB3SzDP3U1wDsJbY" -d "how_recent=20"  

そして、私はそのような応答を得たいと思います:

"recent_with_comments":{"recent":[{"type":"ferrari","price":null,"user_id":78,"username":null,"comments":[{"id":1, "comment": "some text"},{"id":2, "comment": "some text 2"}]}]
4

2 に答える 2

2

json としてレンダリングする場合、http://jonathanjulian.com/2010/04/rails-to_json-or-as_json/ に示すように、追加のパラメーターを渡すことができます

基本的な例:

class Api::V1::CarsController < Api::V1::BaseController
  def recent
    recent = Car.most_recent(params[:how_recent])
    comments = recent.each{|r| r.comments} ## ??
    respond_to do |format|
      format.html
      format.json { render recent.as_json(:include => :comments) }
    end
  end
end
于 2012-07-04T22:51:08.460 に答える
0
comments = Comment.join(:car).merge(Car.most_recent(params[:how_recent]))

カスタムjson出力が必要な場合は、 rabl gemを使用してください

于 2012-07-04T22:50:26.013 に答える