【问题标题】:rails multiple outer joins syntaxrails 多个外连接语法
【发布时间】:2012-10-29 10:20:42
【问题描述】:

我有以下型号

用户

has_many :leave_balances

离开余额

belongs_to :user
belongs_to :leave_type

离开类型

has_many :leave_balances

我想输出一个表格格式,按休假类型显示用户名及其余额。 并非每个用户都可以拥有所有余额,即所需的外部联接。

我希望看到这样的东西:

Employee   Annual Leave   Sick Leave
Bob        10 
Fred                      9
Sara       12             15

我不确定如何将它作为一个单一的陈述来表达?

我在想类似 User.joins(:leave_balances).joins(:leave_type)

【问题讨论】:

标签: ruby-on-rails-3 activerecord


【解决方案1】:

我最近遇到了同样的事情。我切换到 Squeel,我现在更加快乐。具体来说,指定外连接的语法非常简洁:

result = User.joins { leave_balances.outer.leave_type.outer }.where { some_constraints }

https://github.com/ernie/squeel

【讨论】:

    【解决方案2】:

    您可以将哈希传递给joins 方法以获取nested joins

    这样你就可以了

    User.joins(leave_balances: :leave_type)
    

    但这将执行INNER JOIN,我认为您需要的是LEFT OUTER JOIN

    因此您可能必须手动将join 写为described here

    【讨论】:

      猜你喜欢
      • 2012-09-30
      • 2017-02-22
      • 2015-01-16
      • 2020-09-14
      • 2011-06-02
      • 2013-01-22
      • 1970-01-01
      • 2016-03-22
      • 2012-04-29
      相关资源
      最近更新 更多