Ruby on rails 获取所有关联记录的活动记录方法
我有一张客户表和一张订单表。每个客户都有多个订单,当我对客户执行Ruby on rails 获取所有关联记录的活动记录方法,ruby-on-rails,ruby,activerecord,Ruby On Rails,Ruby,Activerecord,我有一张客户表和一张订单表。每个客户都有多个订单,当我对客户执行操作时,我会得到所有客户,但不是他们的订单。是否有办法同时获得客户.all.associations 获取: [ { : id=>1, : name=>"abc" }, { : id=>2, : name=>"xyz" } ] 想要获得: [ { : id=>1, : name=>"abc" }, { : id=>2, : n
操作时,我会得到所有客户,但不是他们的订单。是否有办法同时获得客户.all.associations
获取:
[
{
: id=>1,
: name=>"abc"
},
{
: id=>2,
: name=>"xyz"
}
]
想要获得:
[
{
: id=>1,
: name=>"abc"
},
{
: id=>2,
: name=>"xyz"
}
]如果您想获得所有客户的订单,那么
Customer.includes(:orders)
如果需要将其转换为JSON或哈希格式,则
Customer.includes(:orders).as_json(include: :orders)
如果你想得到所有客户的订单,那么
Customer.includes(:orders)
如果需要将其转换为JSON或哈希格式,则
Customer.includes(:orders).as_json(include: :orders)
我甚至不必做Customer.includes(:orders)
,因为我的关联已经描述了这一点。。我只想拥有Customer.all.whatever.as_json
,这给了我完整的json是可能的吗?旁注:你需要Customer.includes(:orders)
来避免N+1
查询问题。我甚至不必做Customer.includes(:orders)
,因为我的关联已经描述过了。。我只想拥有Customer.all.whatever.as_json
这给了我完整的json,这是可能的吗?旁注:您需要Customer.includes(:orders)
来避免N+1
查询问题。正如其他一些回答者所说,您可以使用includes来延迟加载关系。但要获得所需的输出,可能必须使用序列化程序。正如其他一些回答者所说,这可能会有所帮助,您可以使用includes来延迟加载关系。但要获得所需的输出,可能必须使用序列化程序。这个可能会有用的谢谢Mayank!工作正常。还有一个请求,我还将在查询中的日期字段中创建和更新:orders
模块中排除您可以在as_json方法中使用excludeCustomer.includes(:orders)。如果您还需要从orders
表中删除created\u at
和updated\u at
,则可以使用Customer.includes(:orders)。作为json(除了:[:created\u at,:updated\u at],包括:[orders:{[:created_at,:updated_at]}])
谢谢Mayank!成功了。还有一个请求,我还得到了查询中的created_at
和updated_at
日期字段。我如何将它们从:orders
模块中排除您可以在as_json方法中使用排除。客户。包括(:orders)。as_json(除了:[:created_at,:updated_at],include::orders)
如果您还需要从orders
表中删除created_at
和updated_at
,那么您可以使用Customer.includes(:orders)。作为json(除了:[:created_at,:updated_at],包括:[订单:{except:[:created_at,:updated_at]])