ActiveAdmin: сортировка столбца с пользовательскими данными внутри - PullRequest
0 голосов
/ 12 сентября 2018

Я борюсь со следующей проблемой. Мой проект содержит следующие модели:

Пост (имеет один 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. Спасибо!

...