【问题标题】:Ruby on rails reverse before limitingRuby on rails 在限制之前反转
【发布时间】:2019-01-20 04:07:00
【问题描述】:

我有一个文章列表,我使用 .reverse_each 首先显示最新条目。在另一个页面中,我想显示最新的 3 个,但我想在排序之前反转列表,我不知道如何。

我的代码是:

<% @articles.take(3).reverse_each do |article| %>
   <a href="<%= article_path(article) %>"><h3 class="home-project-title"><%= article.title %></h3></a>
<% end %>

但这需要 3 个最旧的条目,然后将它们反转?如何反转条目然后限制?

【问题讨论】:

  • 什么是@articles?数组? AR 关系?
  • 要对哪个字段进行排序?
  • @articles 是一个数组,是的
  • 我不确定你在问什么,Vishal。我有我的数组,即@articles,它包含 20 个条目,现在我想显示 3 个最新条目。但我的问题是它列出了 3 个最旧的条目而不是 3 个最新的条目。
  • 尝试使用@articles.order(id: :desc).limit(3).each do |article|

标签: ruby-on-rails each reverse


【解决方案1】:

试试吧:

@articles.last(3).reverse_each

【讨论】:

    【解决方案2】:

    你可以使用:

    @articles.order(created_at: :desc).limit(3)
    

    以下是使用的不同方法的细分:

    • order(created_at: :desc):告诉 ActiveRecord 在 SQL 查询中添加子句 ORDER BY created_at DESC
    • limit(3):告诉 ActiveRecord 在 SQL 查询中添加子句 LIMIT 3

    【讨论】:

      猜你喜欢
      • 2014-04-17
      • 2010-09-15
      • 2016-01-24
      • 2015-09-29
      • 2010-12-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-11
      相关资源
      最近更新 更多