2015-10-06 38 views
0

的我有擁有衆多用戶一個店鋪模型:Rails的:獲取一個ActiveRecord集合,而不是陣列

Shop.rb

def active_users 
    users.where(status: "active").reverse 
    end 

目前,當我打電話some_shop.active_users,我得到的數組用戶對象。但是有可能取而代之的是獲得一個ActiveRecord用戶集合嗎?

+0

它正在變成一個數組,因爲你正在調用它的''reverse''方法,它是一個數組方法。無論如何反向是錯誤的,因爲你永遠無法確定數據庫返回值的順序,除非你調用''order'',而不是''在sql語句中變成''order by''。因爲''order''是一個活動的記錄方法,它的輸出不會是一個數組。 – AOG

回答

1

這是懶惰的綁定。這將是一個數組,當你訪問它。 嘗試通過調用active_users.to_a

+0

有沒有辦法保留它,或將其更改爲ActiveRecord集合? –

+0

我正在嘗試使用僅適用於集合的分頁方法。 –

+0

這就是ActiveRecord的設計方法。什麼不適合你?分頁將與它一起工作。 – Zepplock

相關問題