0
私はステータスフィードにたくさんのオブジェクトを提供しており、最新の活動に基づいてソートしたいと思っています。私は、各オブジェクトののcreated_at属性のオフにソートされた場合、私はコードを使用します。レールで並べ替えるためのカスタムメソッドを使用します。
articles = Article.all
documents = Document.all
@feeds = (articles + documents).sort! { |b, a| a.created_at <=> b.created_at }
をしかし、の人々は、そのような文書の最新の活動は、最新でのcreated_at属性であることを文書で投稿できるとしましょう役職。
@feeds = (articles + documents).sort! { |b, a| a.latest_activity <=> b.latest_activity }
をそして私はモデルにlatest_activity定義します:それから私は、次のような並べ替えしたい
def latest_activity
self.posts.last.created_at
end
Article.rbで
def latest_activity
self.created_at
end
Document.rbで
これは動作しません。ローカルサーバーは次のエラーを処理します。
undefined method `created_at' for nil:NilClass
ここでどのようにソートを行うことができますか?
ショット? –
self.posts.last.try(:created_at) – klochner
hmmmm Platinum Azure、いい仕事 - 投稿なしの書類のチェックを完全に忘れてしまった!!! – jay