Rails 3 - определение: порядок с использованием комбинации атрибутов, при этом * последняя запись * обрабатывается иначе - PullRequest
0 голосов
/ 22 января 2012

Моя заявка имеет следующие требования к заказу:

  • Порядок по значимости (измеряется, скажем, количеством лайков) И
  • Заказ по созданному DESC

Так что в настоящее время я использую следующее для определения: order

:order => 'model.likes_count DESC, created_at DESC'

Однако, с моей точки зрения, я создаю новые записи модели, используя AJAX, и поэтому я перезагружаю партиалы, где я отображаю записи базы данных для этой конкретной модели, и хотел бы использовать эффекты jQuery, чтобы (скажем) выделить запись, которая была создано.

Теперь из-за вышеприведенного определения порядка, только что созданная запись не будет отображаться как первая, если у более старой записи больше «лайков».

Есть ли способ определить порядок, который по-разному учитывает «последнюю» запись, а затем упорядочить остальные записи в соответствии с заданным порядком? Если это возможно, каким будет чистый способ добиться этого?

Спасибо!

1 Ответ

0 голосов
/ 18 сентября 2012

Rails API не имеет никакой функциональности для обработки новой записи по-разному.

Возможны следующие варианты:

  • Не выбирать новую запись в запросенапримерс помощью .where("id <> ?",idofnewrecord)

    При необходимости вы можете выбрать новую запись в отдельном запросе

  • Или выбрать записи как обычно, а затем найти новую запись в ruby,например:

    @newrecord = @records.find{|r|r.id==idofnewrecord}

    или удалить его из массива записей:

    @newrecord = @records.delete_if{|r|r.id==idofnewrecord}

Если выне знаю id, вы можете отфильтровать его и с другим атрибутом, например.created_at.

...