Допустим, у меня есть модель Account
с колонками :email, :name, etc
. Письма не уникальны. Я хочу добавить chainablescope
, который выбирает строки с разными адресами электронной почты, но со всеми другими полями. Под «цепочкой» я имею в виду, что я мог бы так: Account.uniq_by_email.where(bla bla)
.Рельсы 4 Активная запись uniq по одному запросу столбца
Что я пробовал:
С
select
:def self.uniq_by_email select('distinct email') end
Не работает для меня, как он выбирает только поле электронной почты.
С
group
def self.uniq_by_email group(:email) end
это почти то, что я хочу: я могу цепь и он выбирает все поля. Но есть странная вещь о методе
count
: он, как вы уже догадались, возвращает хэш подсчета электронной почты. Но я хочу, чтобы он возвращал «простой»ActiveRecord_Relation
, гдеcount
возвращает только счет, а не хэш. Этого можно достичь?
Тх, что то, что я искал – nsave