我有两个表:一个用于帖子,一个用于主题:
posts: id, topic_id, content, created_at, updated_at
topics: id, title, content, created_at, updated_at
我想根据updated_at列从两个记录中检索x个最新记录。所以最后我希望将它们放在一个由BOTH Post和Topic类型对象组成的集合中。我希望我能说清楚。
答案 0 :(得分:0)
看起来我最终还是没有说清楚。但与此同时,我提出了解决方案。它不完美,但它有效。
def recent_activities(count: 10)
posts = Post.order(updated_at: :desc).limit(count)
topics = Topic.order(updated_at: :desc).limit(count)
activities = posts + topics
activities.sort! { |x, y| y.updated_at <=> x.updated_at }
activities.first(count)
end
因此,您可以看到post.topic_id和topic.id关联不相关。有两个表恰好都有updated_at列。我需要来自小组的最近的X记录,包括帖子和主题 - 在上面称为活动。
答案 1 :(得分:-1)
因为你已经有了这些关联,为什么不呢:
<% Topic.order(:created_at => :asc).limit(10) do |topic| %>
<%= topic.title %>
<%= topic.content %>
<%= topic.post.content %>
<%= topic.created_at %>
<%= topic.post.created_at %>
<% end %>