【问题标题】:How can I optimize this situation with ActiveRecord (Rails 3)如何使用 ActiveRecord (Rails 3) 优化这种情况
【发布时间】:2010-10-12 21:48:59
【问题描述】:

假设我有以下关联:

俱乐部 has_many 用户 用户 has_many guns 枪有_许多子弹 俱乐部:萌、拉里、卷毛 萌:2枪 枪 1 有 100 发子弹 枪 2 有 20 发子弹 拉里:1枪 枪 1 有 40 发子弹 卷曲:2枪 枪 1 有 20 发子弹 枪 2 有 10 发子弹

现在,我想知道俱乐部里有多少子弹。

使用简单:Moe.bullets.sum(:amount) = 120 个子弹。

但是如何在不遍历每个用户的情况下获得所有项目符号?

希望这是有道理的。

顺便说一句,我正在使用 ActiveRecord 和 Rails 3。

谢谢!

【问题讨论】:

    标签: activerecord ruby-on-rails-3 query-optimization associations


    【解决方案1】:

    我假设 gun 1 和 gun 2 是名称而不是唯一标识符。在这种情况下,

    Club has_many 用户 用户 has_many guns 枪有_许多子弹

    俱乐部:萌、拉里、卷毛

    枪:1(萌),2(萌),3(拉里),4(卷毛),5(卷毛)

    萌:2支枪 (枪)1有100发子弹 (枪)2有20发子弹

    拉里:1 枪 (枪)3有40发子弹

    卷毛:2 支枪 (枪)4有20发子弹 (枪)5有10发子弹

    在这种情况下,我会将俱乐部 ID 也添加到枪表中。用它我们可以直接得到一个俱乐部的子弹数量......

    或者另一种解决方案是使用 counter_cache...

    希望对你有帮助

    rgds,

    坎南R

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多