Created
May 18, 2021 08:41
-
-
Save ruvaleev/e8b33c79a90dbf10b55f21df22cc52ae to your computer and use it in GitHub Desktop.
Ранзакер director для модели projects
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
ransacker :director do | |
subquery = <<-SQL.squish | |
( | |
SELECT users.lastname | |
FROM users | |
LEFT OUTER JOIN members ON members.project_id = projects.id | |
LEFT OUTER JOIN member_roles ON member_roles.member_id = members.id | |
LEFT OUTER JOIN roles ON roles.id = member_roles.role_id | |
WHERE roles.id = 8 AND projects.id = projects.id | |
LIMIT 1 | |
) | |
SQL | |
Arel.sql(subquery) | |
end | |
__END__ | |
# Вот такие результаты дает это при тесте локально (и при тесте через вьюху-контроллер то же самое). | |
# Даже с учетом неправильной сортировки, мне кажется, что ранзакер я написал неправильно, и он не работает. | |
projects = Project.find_by_sql("SELECT * from projects ORDER BY #{subquery} ASC") | |
projects.map { |project| project.principals_by_role[Role.find_by(id: 8)]&.first&.name(:ministry) } | |
# DESC = [nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, "Сташевская Г.", "Сташевская Г.", "Журавлев В.", "Терещенков А.", "Дзюба М.", "Зубков М.", "Журавлев В.", "Ярополов Я.", "Ярополов Я.", "Поплаухин Д.", "Колыхалов А.", "Никончук В.", "Солодова М.", "Доронкин А.", "Солодова М.", "Поплаухин Д.", "Корженевская А.", "Цветков С.", "Сташевская Г.", "Чистяков А.", "Волев Е.", "Головин А.", "Смирнов А.", "Смирнов А.", "Дзюба М.", "Корженевская А.", "Журавлев В.", "Рахманов В.", "Трубникова Т.", "Кунцевич А.", "Зарипов Т.", "Ерохин М.", "Алексеенко О.", "Скуратова Т.", "Сергиенко С.", "Поплаухин Д.", "Дикий А.", "Волков Д.", "Коноплянов А.", "Парфенов С.", "Рахманов В.", "Никитин К.", "Поплаухин Д.", "Шабанов Ю.", "Гвоздева Н.", "Цветков С.", "Коноплянов А.", "Сташевская Г.", "Коноплянов А.", "Ковалев А.", "Корженевская А.", "Поплаухин Д.", "Поплаухин Д.", "Журавлев В.", "Котишевский А.", "Смирнов А.", "Михайлов Ю.", "Глазунова К.", "Алексеенко О.", "Радужан А.", "Яковлева С.", "Трубникова Т.", "Журавлев В.", "Тихонов А.", "Глазунова К."] | |
# ASC = ["Котишевский А.", "Шабанов Ю.", "Гвоздева Н.", "Цветков С.", "Коноплянов А.", "Сташевская Г.", "Коноплянов А.", "Ковалев А.", "Корженевская А.", "Поплаухин Д.", "Поплаухин Д.", "Журавлев В.", "Смирнов А.", "Михайлов Ю.", "Глазунова К.", "Алексеенко О.", "Радужан А.", "Яковлева С.", "Трубникова Т.", "Журавлев В.", "Тихонов А.", "Глазунова К.", "Сташевская Г.", "Сташевская Г.", "Журавлев В.", "Терещенков А.", "Дзюба М.", "Зубков М.", "Журавлев В.", "Ярополов Я.", "Ярополов Я.", "Поплаухин Д.", "Колыхалов А.", "Никончук В.", "Солодова М.", "Доронкин А.", "Солодова М.", "Поплаухин Д.", "Корженевская А.", "Цветков С.", "Сташевская Г.", "Чистяков А.", "Волев Е.", "Головин А.", "Смирнов А.", "Смирнов А.", "Дзюба М.", "Корженевская А.", "Журавлев В.", "Рахманов В.", "Трубникова Т.", "Кунцевич А.", "Зарипов Т.", "Ерохин М.", "Алексеенко О.", "Скуратова Т.", "Сергиенко С.", "Поплаухин Д.", "Дикий А.", "Волков Д.", "Коноплянов А.", "Парфенов С.", "Рахманов В.", "Никитин К.", "Поплаухин Д.", nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil] | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment