【发布时间】:2014-10-29 04:27:26
【问题描述】:
这应该是一个简单的查询,但我在正确使用 Rails 语法时遇到了问题。我正在使用 Rails 4.1.1 和 Postgresql(9.3)。我有一个模型用户和模型公司。用户有一个公司,公司有很多用户。我正在尝试查找所有拥有超过 5 个用户的公司。
class Company < ActiveRecord::Base
has_many :users, dependent: :destroy
...
class User < ActiveRecord::Base
belongs_to :company
...
问题类似这样:Find all records which have a count of an association greater than zero
如果我尝试上述类似的解决方案:
Company.joins(:users).group("company.id").having("count(users.id)>5")
它给了我一个错误:
PG::UndefinedTable: ERROR: missing FROM-clause entry for table "company"
LINE 1: ... "users"."company_id" = "companies"."id" GROUP BY company.id...
我已经尝试了几种不同的查询来获得结果,但我没有这样做。我可以使用 SQL,但这似乎很愚蠢,因为这应该可以通过 ActiveRecord 轻松实现。
感谢所有回复:)
【问题讨论】:
标签: sql ruby-on-rails ruby postgresql activerecord