Итак, у меня есть приложение на форуме и двойные вложенные ресурсы.Раздел -> Тема -> Ответы и настраиваются как таковые в контроллере приложения (стиль Rails 3).Я смотрю на раздел и пытаюсь отсортировать мои темы.На большинстве форумов наиболее логичным является метод сортировки по последнему обновлению.Это было бы просто, если бы это было просто ответами.Очевидная проблема в том, что есть темы без ответов, поэтому сортировка по ответам не будет работать.
<% @section.topics.sort_by{ ?? }.each do |topic| %>
<tr>
<td class="topic"><%= link_to topic.subject, [@section, topic] %></td>
<td class="postCount"><%= topic.replies.count %></td>
<td class="date">
<% if topic.replies.empty? %>
<%= topic.created_at.strftime("%I:%M%p %m/%d/%y") %>
<% else %>
<%= topic.replies.last.created_at.strftime("%I:%M%p %m/%d/%y") %>
<% end %>
</td>
</tr>
<% end %>
Так что, в основном, если ответы пусты, вы тянете, когда тема создана.Если есть ответы, потяните, когда последний был создан.Это чудесно отображается в представлении show section, но я понятия не имею, как сортировать, используя это.
Я попытался создать метод в модели темы под названием «last_updated».Я написал это так:
def last_update(sectionTopic)
if sectionTopic.replies.empty?
return sectionTopic.created_at
else
return sectionTopic.replies.last.created_at
end
end
И передал его через представление:
<% @section.topics.sort_by{ |topic| topic.last_update(@section.topics)}.each do |topic| %>
Но я получаю неопределенный метод "ответы", когда яэтот.Есть идеи?Спасибо.