0

我正在尝试几件事来查找并非所有消息都已删除且无法正常工作的对话。

这是一个实现:

def index  
    @conversations = @mailbox.conversations.delete_if do |c|
        receipts = c.receipts_for @master
    return (receipts.where(deleted: true).count == receipts.count)  
    end
    @conversations = @conversations.page(params[:page_1]).per(9)
end

我还使用了 .find_each 而不是 delete_if。

这是我看到的错误

ActionView::Template::Error (undefined method `first_page?' for nil:NilClass):

更新:我删除了返回,现在显示:

NoMethodError(# 的未定义方法“页面”):

4

1 回答 1

0

index方法一命中就退出return

尝试删除return关键字。

编辑,重新:分页

当您使用delete_if生成的对象将是一个数组。Kaminari 默认情况下不适用于数组。请参阅此链接

所以,你需要做这样的事情: @conversations = Kaminari.paginate_array(@conversations).page(params[:page_1]).per(9)

比使用更好的解决方案delete_if是将查询放在一起,该查询准确地返回您想要的ActiveRecord::Relation对象。

我不确定那会是什么样子。可能会提出一个很好的单独问题。

于 2014-02-27T18:27:38.090 回答