gpt4 book ai didi

ruby-on-rails - 预加载模型关联查找

转载 作者:行者123 更新时间:2023-12-03 16:20:48 25 4
gpt4 key购买 nike

现在我正在尝试调用我的模型,并将其结果输出为 json/xml 格式。我唯一的问题是,我的数据库关联没有被加载或查询。

通常,我可以运行这个

@campaign = Campaign.find(:all)

然后通过调用,@campaign[0].hits 获取点击次数。通过 has_many :hits .

但是如果你调试输出,它只会调用表上的列。您将如何将它与您的查询放在一起?

例如:

<事件>
网站
2009-01-24 14:49:02 -0800
2009-01-24
14
1
让我们
c5334415da5c89384e42ce6d72609dda
2009-01-24
5


然后让它改为添加另一列,但没有点击次数。

<事件>
网站
2009-01-24 14:49:02 -0800
2009-01-24
14
1
让我们
c5334415da5c89384e42ce6d72609dda
2009-01-24
5
123412

最佳答案

ActiveRecord find() 系列采用 :include 选项,允许您预先加载关联。

所以你需要做的就是:

@campaign = Campaign.find(:all, :include => :hits)



以上将急切加载您的数据库调用,以便访问每个索引 [0]。 [1] 等不会发出自己的 SELECT 调用。你打电话时

@campaign[0].to_json



然后它将不包含任何关联,例如“命中”来执行此操作,那么您还需要 :include 它在 to_json 调用中,例如

@campaign[0].to_json(:include => :hits)

关于ruby-on-rails - 预加载模型关联查找,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/482461/

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