如何在JSON中使用rails 3加载关联?

Eth*_*ick 1 serialization json ruby-on-rails associations ruby-on-rails-3

在我的rails 3.1应用程序中,我有Lists,它有很多任务.所有的关联都设置得恰当,我可以调用aList.tasks,然后我可以看到List的任务.但是,当我加载/lists.json时,我得到以下输出:

{
created_at: "2011-12-07T21:51:31Z",
id: 1,
title: "Test 1",
updated_at: "2011-12-07T21:51:31Z"
}
Run Code Online (Sandbox Code Playgroud)

因此,List被序列化为JSON,但它的"任务"关联不是(任务嵌套在列表下,因此/ list/1/tasks将获得任务......但仅限于该1列表).如果我有500个列表,我不想要拨打500次来获取每个列表的所有任务 - 我希望在获得所有列表时获得所有任务.我如何设置它以便JSON还包括关联?思考?

谢谢!

Max*_*yak 6

当渲染列表,只需添加include: :tasksto_json.

format.json do
  render json: @list.to_json(include: :tasks)
end
Run Code Online (Sandbox Code Playgroud)

PS不要忘记新的哈希语法仅适用于ruby> = 1.9.2.这是旧的语法.

format.json do
  render :json => @list.to_json(:include => :tasks)
end
Run Code Online (Sandbox Code Playgroud)