следующий, предыдущий на основе текущего порядка сортировки - PullRequest
1 голос
/ 16 марта 2012

У меня есть области действия, определенные в модуле включения, например:

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 будет автоматически использовать имя вместо этого.

На самом деле, если бы существовал метод, который вернул смещение текущего объекта ActiveRecord, это решило бы мою проблему. Но смещение, которое существует только , устанавливает смещение возвращаемых записей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...