此SQL连接的ActiveRecord结构是什么?

时间:2015-06-25 04:37:14

标签: ruby-on-rails

我在控制器中有这个:

@report_b = Case.find_by_sql("
  SELECT Employees.name, COUNT(*) AS cnt
  FROM Employees INNER JOIN Cases
  WHERE Employees.id = Cases.assigned_id
  GROUP BY Employees.name
")

它适用于sqlite3 / development,但不适用于postgresql / production。

错误是:语法在WHERE中W下的插入符错误。

我想将其转换为ActiveRecord格式,并尝试一下吗?

1 个答案:

答案 0 :(得分:0)

假设.navbar-collapse ul li:last-child a { border-right: medium none; } 是您已经告诉Rails使用的外键与Employees表关联,那么您所要做的就是:

Cases.assigned_id

如果Employee.joins(:cases).group(:name).count 不是外键Rails正在使用,那么这不会起作用。在这种情况下,您可以修改SQL并为Cases.assigned_id切换WHERE,Postgres会很高兴:

ON