Учитывая канонический пример:ActiveRecord охват в зависимости от количества внешних ключей
class Post < ActiveRecord::Base
has_many :comments
end
class Comments < ActiveRecord::Base
belongs_to :post
end
Я хотел бы вернуть сферу (т.е. ActiveRecord::Relation
) всех сообщений, которые имеют X или меньше комментариев; используя либо Active Record Query Interface, Arel, либо что-то еще, если оно решает мою проблему.
псевдокод:
scope :quiet, lambda { |n| where(comments: { maximum: n }) }
Я знаю, что это может быть сделано в Ruby, с помощью простого Enumerable#select
. Предпочтительно рассчитываться в базе данных, так как на самом деле может быть только одна Модель, которая удовлетворяет предикату.
Имея это то, что я искал! Полный isl ('.group (...). Имеющий (...)' код чрезвычайно многословный, предлагающий небольшую дополнительную выгоду. –