Tôi nghĩ bạn có thể làm như thế này bởi phạm vi
class User
has_many :properties
scope :max_properties,
select("users.id, count(properties.id) AS properties_count").
joins(:properties).
group("properties.id").
order("properties_count DESC").
limit(1)
scope :min_properties,
select("users.id, count(properties.id) AS properties_count").
joins(:properties).
group("properties.id").
order("properties_count ASC").
limit(1)
Và chỉ cần gọi User.max_properties và User.min_properties
CẬP NHẬT:
Nó sẽ aslo công việc như BoraMa suggeted
class User
has_many :properties
scope :max_properties,
select("users.*, count(properties.id) AS properties_count").
joins(:properties).
group("users.id").
order("properties_count DESC").
limit(1)
scope :min_properties,
select("users.*, count(properties.id) AS properties_count").
joins(:properties).
group("users.id").
order("properties_count ASC").
limit(1)
thuộc tính nào tối thiểu, tức là theo trường nào? xin vui lòng xây dựng –