Rails Active Record Сортировка с использованием значений Concat w / nil - PullRequest
1 голос
/ 10 марта 2020

Ранее, чтобы получить список игр для отображения, я сделал:

@games = Game.all

У меня есть 3 соответствующих столбца, которые я хочу использовать для сортировки: series, sort, и title. Я пытался сделать что-то вроде этого:

@games = Game.order (:series || :sort || :title)

Но полученная сортировка повсюду, и она перетаскивает все игры с series или sort наверх. Я надеялся объединить их все в одну строку и использовать эту результирующую строку в качестве сортировки, делая ее c такой, чтобы series или sort могли быть nil (что составляет более половины результатов ).

Возможно ли это? Я спрашиваю слишком много здесь?

1 Ответ

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

Один из возможных способов реализовать это:

Game.all.sort_by(&:sort_string)


###

class Game < ApplicationRecord
    def sort_string
        [series, sort, title].join('')
    end
end

all в этом случае будет заменен вашим запросом, а после запроса вы будете сортировать его по пользовательскому методу в вашей модели

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...