Rails - 如何将关联的模型数据引入控制器json调用?

时间:2012-03-26 15:06:53

标签: ruby-on-rails json

我有两个相互关联的模型。

Customer has_one :primary_contact

我想在json对象中提取这些数据,以便primary_contact模型与Customer对象相关联。

现在我的控制器执行此操作:

@customers = current_account.customers.all

respond_to do |format|
  format.json { render :json => @customers.to_json, :layout => false }
end

但我还想在这些客户对象中包含他们的主要联系信息。 我如何在相关的上下文中提取这些信息,以便我在jQuery中获取这些数据:

value.primary_contact.name

现在,我可以通过以下方式将json拉出客户对象:

value.name
value.address

2 个答案:

答案 0 :(得分:3)

Per the documentation,使用:include选项:

  

要包含关联,请使用:include

konata.to_json(:include => :posts)
# => {"id": 1, "name": "Konata Izumi", "age": 16,
#     "created_at": "2006/08/01", "awesome": true,
#     "posts": [{"id": 1, "author_id": 1, "title": "Welcome to the weblog"},
#               {"id": 2, author_id: 1, "title": "So I was thinking"}]}

答案 1 :(得分:1)

要包含关联,请使用:include。

@customers = current_account.customers.all(:include => :primary_contact)

respond_to do |format|
  format.json { render :json => @customers.to_json, :layout => false }
end