【问题标题】:Writing nested associations编写嵌套关联
【发布时间】:2013-02-07 21:44:37
【问题描述】:

在一个组织表中,另外两个表与 belongs_tohas_many 关联挂起,它们都具有 organization_id 键。

所以为了急切加载,我写了这个:

@organization = Organization.includes(:population_summaries, :key_performance_inds).find(params[:id]) 

这应该可行。

但现在我要在其中包含第三张表。 key_performance_interval 具有用作指向 key_performance_int 表的外键的 kpi_id 字段。我无法编写该部分并将其添加到我的急切加载部分。我应该如何添加那个?

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3.2 rails-activerecord


    【解决方案1】:

    要包含嵌套关联,请将其写为哈希:

    @organization = Organization.includes([:population_summaries, key_performance_inds:  :key_performance_interval]).find(params[:id])
    

    您可以在rails guide 的第 12.1.2 节下阅读有关它的信息

    【讨论】:

    • 谢谢,我写的时候不知道为什么 RubyMine 会说“额外的调用参数”。
    • 您使用的是 ruby​​ 1.8 还是 1.9?如果您使用的是 1.8,则可能必须使用旧式哈希。
    • 我在 1.9 上,key_performance_inds 中 ":" 的位置怎么样...你的代码在右侧 "key_performance_inds:" ,如果我把冒号放在左边怎么样像 ":key_performance_ind" ?
    • 太棒了,现在 RubyMine 错误消失了。但是我要学习的一个问题是:我们是否需要将它们全部排列起来?或者只是具有“嵌套哈希”的那个?
    • #includes 方法采用单个参数,这就是为什么需要将整个东西作为数组传入的原因。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-06
    • 2014-10-24
    • 2014-06-20
    • 2015-10-07
    相关资源
    最近更新 更多