获得最近5条记录

Dim*_*ter 3 ruby-on-rails ruby-on-rails-5

在我的应用程序中学习RoR,我想在列表中获取最后的x(比如5)记录.

目前我全部使用

<% @business_partner.received_documents.each do |document| %>
Run Code Online (Sandbox Code Playgroud)

查看文档和SC帖子,我尝试使用下面的代码,但得到一个空列表.

<% @business_partner.received_documents.last(5) do |document| %>
Run Code Online (Sandbox Code Playgroud)

我该怎么用?

And*_*eko 6

订购received_documents通过创建日期和取5最后:

@business_partner.received_documents.order(:created_at).limit(5)
Run Code Online (Sandbox Code Playgroud)

要获得5个最新的:

@business_partner.received_documents.order(created_at: :desc).limit(5)
Run Code Online (Sandbox Code Playgroud)

编辑

这个问题

@business_partner.received_documents.last(5) do |document|
Run Code Online (Sandbox Code Playgroud)

是你实际上迭代集合,因此没有显示输出.

用途each:

@business_partner.received_documents.last(5).each do |document|
Run Code Online (Sandbox Code Playgroud)