在REST JSON结果中包含has_many结果

我有一个名为List的模型has_many :entries 。 像往常一样,Rails 3为List生成了这个show方法

 def show @list = List.find(params[:id]) respond_to do |format| format.html # show.html.erb format.json { render json: @list } end end 

如何更改format.json以包含json响应中@listentries结果?

我知道我可以将@list转换为Hash,将.entries的哈希值添加到那个,然后渲染哈希,但我怀疑Rails有更优雅的技巧。

是的,你可以给to_json一个:include选项:

 format.json { render json: @list.to_json(:include => :entries) }