我試圖找幾個事情來找到並非所有郵件都已被刪除的對話,現在kaminari頁面方法不起作用。難道說對話是一種散列,而delete_if方法以一種意想不到的方式改變散列?當直接與@mailbox.conversations.page(params[:page_1]).per(9)
一起使用時,頁面方法將起作用,因此它必須是使其無法工作的delete_if塊。頁面方法不適用於kaminari和郵箱
這裏是我的行動:
def index
@conversations = @mailbox.conversations.delete_if do |c|
receipts = c.receipts_for @master
(receipts.where(deleted: true).count == receipts.count)
end
@conversations = @conversations.page(params[:page_1]).per(9)
end
我也用.find_each代替delete_if的。
這裏是我得到我的觀點
NoMethodError (undefined method `page' for #):
謝謝您的回覆是的,它是設置在第一次談話變量,把事情搞糟。 –
小心點,我不認爲Mlennie真的想'摧毀'任何物體。 Mlennie只是想獲得一個set/array/ActiveRecord :: Relation'並不是所有的消息都被刪除了,'delete_if'完成了這個(如果效率低下)。使用'delete_if'返回一個數組,其中滿足塊中指定條件的所有對象都已被刪除。但它實際上並不會從數據庫中「銷燬」任何持久數據。 – johnnycakes
同意。如果她想做你說的話,她應該使用'scope'或'where'調用來加載具體數據 –