Я собираю несколько объектов в ленту состояний и хочу отсортировать их по последним действиям.Если бы я просто сортировал атрибут create_at каждого объекта, я бы использовал код:
articles = Article.all
documents = Document.all
@feeds = (articles + documents).sort! { |b, a| a.created_at <=> b.created_at }
Но давайте скажем, что люди могут публиковать документы так, что последним действием в документе является атрибут create_at впоследний пост.Тогда я хотел бы отсортировать так:
@feeds = (articles + documents).sort! { |b, a| a.latest_activity <=> b.latest_activity }
И я бы определил latest_activity в моделях:
В Document.rb
def latest_activity
self.posts.last.created_at
end
в Article.rb
def latest_activity
self.created_at
end
Это не работает .. локальный сервер выдает следующую ошибку:
undefined method `created_at' for nil:NilClass
Как мне выполнить сортировку, необходимую здесь?