【问题标题】:Incorrect order with ActiveRecord queryActiveRecord 查询的顺序不正确
【发布时间】:2017-07-18 05:32:38
【问题描述】:

我正在使用 ActiveRecord 和 PostgreSql,我正在使用 order 方法。

但是顺序不对。

在 category_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>

【问题讨论】:

  • show 方法中,您已经定义了@categories,但在视图中您使用的是@category。此外,您正在整理 Category 模型,但在视图中,您正在显示一个类别的帖子。这完全不相关。
  • 您想通过categoryposts 订购?

标签: ruby-on-rails ruby postgresql ruby-on-rails-4


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多