在这种情况下如何定义范围?

时间:2013-01-23 05:07:17

标签: ruby-on-rails ruby-on-rails-3

我有2个模型,例如UserUniquecode
我正在使用名为acts_as_paranoid的gem,它可以实现逻辑删除。 基本上,User有一个名为'deleted_at'的列,datetime将在删除User时设置。

我在Uniquecode模型中定义了这个

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

但是,此代码会获取所有用户,包括已删除逻辑删除的用户。 那些通过逻辑删除删除的用户在'deleted_at'列中有时间戳。

如何忽略这些人并仅获取具有此条件的活动用户? 我怎样才能以不同的方式编码呢?

  • 一次10条记录
  • 必须按“用户”表中的“last_active_at”列进行排序。我想要最新的10条记录。

1 个答案:

答案 0 :(得分:1)

这对你有用吗?

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