Я борюсь со следующей проблемой. Мой проект содержит следующие модели:
Пост (имеет один PostReport) - пользователь может удалить свой пост
PostReport (принадлежит Post), который создается, если пользователь с правами администратора помечает это сообщение как нарушающее правила, а затем сообщение становится активным, как будто оно удалено - оно скрыто от всех просмотров.
Теперь в панели ActiveAdmin я пытаюсь создать таблицу всех сообщений с именами, авторами и другими «стандартными» столбцами. Я также хотел иметь общий вид на «Удаленные» сообщения - либо удаленные пользователем, либо сообщенные администраторами.
column "Deleted", :deleted_at, sortable: :deleted_at do |post|
if post.post_report.present?
"POST REPORTED"
else
post.deleted_at
end
end
Как мне сделать так, чтобы этот столбец сортировался сначала по датам DESC, затем по строке и затем помещал все сообщения с нулем? Когда я оставляю этот код, как он представлен выше (sortable: delete_at), он не учитывает мою пользовательскую строку - что вполне разумно, поскольку она не помещается в столбец DB. У меня уже есть область для фильтрации всех сообщений, о которых сообщается, но я также хочу настроить это табличное представление.
Это мой желаемый вывод:
post_id (...) Deleted
1 2018-09-21
4 2018-09-15
3 POST REPORTED
5
2
Пожалуйста, не сосредотачивайтесь на логике этого решения, я просто пытаюсь усложнить освоение ActiveAdmin, а затем расширить модель PostReport. Спасибо!