我正在尝试做一些我认为很简单的事情,但似乎并不是这样.
我有一个有很多职位空缺的项目模型.
class Project < ActiveRecord::Base
has_many :vacancies, :dependent => :destroy
end
Run Code Online (Sandbox Code Playgroud)
我想得到所有至少有1个空缺的项目.我试过这样的事情:
Project.joins(:vacancies).where('count(vacancies) > 0')
Run Code Online (Sandbox Code Playgroud)
但它说
SQLite3::SQLException: no such column: vacancies: SELECT "projects".* FROM "projects" INNER JOIN "vacancies" ON "vacancies"."project_id" = "projects"."id" WHERE ("projects"."deleted_at" IS NULL) AND (count(vacancies) > 0).
我有很多Farms,每个农场都有很多animals.我需要找到每个有超过5只动物的农场.
我需要一些与此类似的东西......:
Farm.where(animals.count > 5)
Run Code Online (Sandbox Code Playgroud)
更新/回答:
Farm.joins(:animals).group("farm_id").having("count(farm_id) > 5")
Run Code Online (Sandbox Code Playgroud)