Сортировка рельсов с помощью Ransack и Decorator - PullRequest
0 голосов
/ 05 мая 2020

Я сейчас работаю над проектом, в котором я застрял в таком случае. У меня есть такая модель Notification .

t.string "subject"
t.text "content"
t.datetime "sent_at"
t.datetime "deleted_at"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "notification_type", default: 0
t.integer "platform"
t.datetime "start_date"
t.datetime "end_date"

Кроме того, у меня есть декоратор, как показано ниже

class NotificationDecorator < ApplicationDecorator
  delegate_all

  def notification_status
    if object.start_date < ServerTime.now && ServerTime.now < object.end_date
      "In progress"
    elsif ServerTime.now < object.start_date
      "Upcoming"
    else
      "Ended"
    end
  end

  def notification_time
    object.start_date.strftime(Settings.date_time_format) + " ~ " + object.end_date.strftime(Settings.date_time_format)
  end
end

Как видите, я отмечу уведомление со статусом в соответствии с его start_date и end_date. И я хочу отсортировать список записей уведомлений в представлении по Status из этого декоратора. Есть ли способ сделать это с помощью Ransack sort_link , потому что я использую его прямо сейчас. Думаю, мне нужна какая-то область видимости или ransacker.

Кто-то может предложить мне добавить еще одно поле в таблицу уведомлений в качестве статуса, но я действительно не хочу этого делать по какой-то причине. Так что, если вы знакомы с Ransack или Scope и т. Д. c, пожалуйста, помогите мне!

Спасибо!

...