1

我在包含模块中定义了范围,如下所示:

module ActsAsAdjacent

  def self.included(base)

    base.send(:scope, :next, lambda {|id| {:conditions => ["id > ?",id],
       :order => "id ASC", :limit => 1}}) 

    base.send(:scope, :previous, lambda {|id| {:conditions => ["id < ?",id],
       :order => "id DESC", :limit => 1}})     
  end

但实际上我想要它,所以它接下来会这样做,之前不是基于某个特定的列,而是基于当前的排序顺序,例如,如果

class User < ActiveRecord::Base

  default_scope :order => 'users.name ASC'

  include ActsAsAdjacent

然后 ActsAsAdjacent 将自动使用 name 代替。

实际上,如果有一种方法可以返回当前 ActiveRecord 对象的偏移量,就可以解决我的问题。但是存在的偏移量只设置返回记录的偏移量。

4

0 回答 0