代码之家  ›  专栏  ›  技术社区  ›  PeterWong

合并两个ActiveRecord数组并按创建的顺序排序

  •  32
  • PeterWong  · 技术社区  · 14 年前
    books = Book.find(:all)
    articles = Articles.find(:all)
    

    http://guides.rubyonrails.org/layouts_and_rendering.html 我知道我可以这样做:

    <%= render :partial => [customer1, employee1, customer2, employee2] %>
    

    materials = books + articles
    materials.sort_by_created_at
    

    在视图中:

    <%= render :partial => materials %>
    

    如何合并和排序两个ActiveRecord数组???谢谢你的帮助!

    2 回复  |  直到 14 年前
        1
  •  74
  •   Community Dunja Lalic    7 年前

    materials = books + articles

    通过调用 sort_by 方法(从 Enumerable &:

    materials.sort_by(&:created_at)

    find order 子句,以便数据库可以为您进行排序。

        2
  •  6
  •   ryancheung    12 年前

    你也可以使用 Array#concat