获取所有关联记录的活动记录方法

时间:2016-02-26 06:43:31

标签: ruby-on-rails ruby activerecord

我有一个客户表和一个订单表。每个客户都有多个订单,当我执行Customers.all时,我得到所有客户,但不是他们的订单。有没有办法获得Customer.all.associations

获得:

[
{
    : id=>1,
    : name=>"abc"
},
{
    : id=>2,
    : name=>"xyz"
}

想要获得:

[
{
    : id=>1,
    : name=>"abc",
    : orders=>[
        {
            : id=>1,
            : name=>"order1"
        },
        {
            : id=>2,
            : name=>"order2"
        }
    ]
},
{
    : id=>2,
    : name=>"xyz",
    : orders=>[
        {
            : id=>3,
            : name=>"order3"
        },
        {
            : id=>4,
            : name=>"order4"
        }
    ]
}

2 个答案:

答案 0 :(得分:3)

如果您想获得所有客户的订单,那么

Customer.includes(:orders)

如果您需要将其转换为JSON或Hash格式,那么

Customer.includes(:orders).as_json(include: :orders)

答案 1 :(得分:0)

@customers = Customer.includes(:orders)
@customers.as_json(include: :orders) 
相关问题