2013-01-23 41 views
1

我有2個型號,如UserUniquecode
我正在使用名爲acts_as_paranoid的啓用邏輯刪除的gem。 基本上,用戶具有名爲'deleted_at'的列,並且將在用戶被刪除時設置日期時間。如何在這種情況下定義範圍?

我Uniquecode模型

scope :recent, lambda { |n = 10| includes(:user).order("users.last_active_at DESC").limit(n) } 

定義這個然而這段代碼獲取所有用戶,包括與邏輯刪除刪除用戶。 那些用邏輯刪除刪除的用戶在'deleted_at'列中有時間戳。

我該如何忽略這些人並僅以此條件獲取活動用戶? 我怎樣才能以不同的方式編碼?

  • 10只記錄在一個時間
  • 必須通過在用戶表中的列「last_active_at」進行排序。我想要最新的10條記錄。

回答

1

這是否適合您?

scope :recent, lambda { |n = 10| includes(:user).where('users.deleted_at', nil).order("users.last_active_at DESC").limit(n) } 
+0

謝謝!!它看起來幾乎在那裏:)你的代碼只提取已刪除的用戶。我想要相反的:) – HUSTEN

+2

有趣 - 什麼是在deleted_at列?如果用戶沒有被刪除,它是否爲空? – Swards

+0

是的,這真的很有趣。它是相反的。是在被刪除的用戶的'deleted_at'列中有時間戳記。 – HUSTEN