Rails, как сортировать с условными логами c? - PullRequest
0 голосов
/ 27 марта 2020

У меня есть проблема, которую я пока не смог решить, так как .sort_by в Rails 5.1 устарел. Мне нужно изменить любой из этих методов в моем текущем проекте на .sort Я все еще изучаю Rails, поэтому Я прошу прощения, если это простое решение.

Мой вариант использования:
items = items.sort_by{ |a, b| [a.updated_at > current_user.news_seen_at ? 0 : 1, now - a.updated_at] }

Мне кажется, я понимаю, что это в настоящее время сортировка по массиву [0, некоторое время ] ИЛИ [1, некоторое время ]. У меня вопрос, как мне go переписать это, чтобы использовать .sort? Можно ли включить условную логику c так, как она уже есть, или это необходимо сделать до sort, чтобы учесть простой .sort{ |a,b| a <=> b}?
Будем весьма благодарны за любые предложения, рекомендации и / или идеи.

1 Ответ

0 голосов
/ 27 марта 2020

Да, вы можете передать блок на sort.
См. https://apidock.com/ruby/Enumerable/sort.

Для ясности: sort_by - это метод Ruby, и он все еще там в последней версии.
Специфицированный c релиз Rails не будет устаревать на Ruby.

Вот do c для sort_by: https://apidock.com/ruby/Enumerable/sort_by

...