2017-07-18 79 views
-3

我使用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'上訂購嗎? –

回答

1

您想post.id訂購,但你實際上是通過category.id訂購。正確的查詢是:

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