Ruby on Rails получает все атрибуты для пользователя uniq по имени - PullRequest
0 голосов
/ 17 мая 2018

Как я могу сгруппировать пользователя по имени и получить только самого последнего пользователя для каждого имени,

order(create_at: :desc)

Я уже группирую своих пользователей по имени, но я не могу получить только самых последних для каждого имениимя:

User.group(:id, :name).select(:id, :name, :created_at)

[РЕДАКТИРОВАТЬ 01]

Теперь я пытаюсь получить Uniq пользователей, но также и самые последние: Работы!

User.order(upadted_at: :desc).uniq{ |u| u.name }

Ответы [ 2 ]

0 голосов
/ 17 мая 2018

Вы можете проверить документацию активной записи , чтобы узнать больше, но вы можете попробовать это:

# This will give you the SELECT DISTINCT "users"."name" FROM "users" 
User.distinct.pluck(:name).take(2)

# You can also try this to order by created_at
User.select(:name).order(created_at: :desc)

# You can also take the one that appears first in the most recent 
User.select(:name).order(created_at: :desc).take(1)

Вы также должны проверить это другой ответ

Надеюсь, это поможет.

0 голосов
/ 17 мая 2018

ПОПРОБОВАТЬ Это:

User.select([:id, :name]).order(created_at: :desc).group(:id, :name)

или

User.select([:id, :name]).order(:created_at).reverse_order.group(:id, :name)
...