错误的订单与ActiveRecord查询

问题描述:

我使用ActiveRecord与PostgreSql,我使用的是订单方法。错误的订单与ActiveRecord查询

但顺序不正确。

在categories_controller

def show 
    @categories = Category.all.order('id DESC') 
end 
在类别

显示视图

<% @category.posts.each do |post| %> 
<p><%= post.id %></p> 
<% end %> 

它显示了这样的顺序。

<p>3</p> 
    <p>7</p> 
    <p>6</p> 
    <p>4</p> 
    <p>5</p> 
    <p>1</p> 
    <p>2</p> 
+2

在'show'方法中,您已经定义了'@ categories',但在视图中使用'@ category'。此外,您正在整理“类别”模型,但在视图中,您显示的是类别的帖子。这完全不相关。 – 31piy

+0

您想要在'category'或'posts'上订购吗? –

您想post.id订购,但你实际上是通过category.id订购。正确的查询是:

@category = Category.find(params[:id]) 
@category.posts.order(:id).each do |post| 
    post.id 
end