gpt4 book ai didi

ruby - ActiveRecord Associations(has_one) - 访问父对象

转载 作者:行者123 更新时间:2023-12-04 01:37:20 24 4
gpt4 key购买 nike

class Parent < ApplicationRecord
has_one: child
end


class Child < ApplicationRecord
belongs_to :parent
end


childrens = Child.includes(:parent)

puts childrens.to_json
[{"id":1,"parent_id":1,"name":"Jack"},{"id":2,"parent_id":2,"name":"Oleg"}]

在这种情况下,我们可以像这样访问父对象:child.parent

但是无法访问 View 中的父对象。
有没有办法在每个 child 中包含父对象?

谢谢!

最佳答案

您可以使用 as_jsoninclude选择让每个 child 的 parent :

Child.includes(:parent).as_json(include: :parent)

为此,您会收到一些查询。一个给 child ,另一个给每个 child 的 parent (IN 条款):
Child Load (1.0ms)  SELECT "children".* FROM "children"
Parent Load (1.2ms) SELECT "parents".* FROM "parents" WHERE "parents"."id" IN ($1, $2) [["id", 1], ["id", 2]]

您可以限制从数据库中检索的列(使用 select )以及 JSON 对象中的每个对象(不应用 SQL 过滤器)。

关于ruby - ActiveRecord Associations(has_one) - 访问父对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59051929/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com