スラッグを介してモデルの1つのインスタンスを検索しようとしていますが、これは次の方法で実行できます
@project = Project.where(:slug => params[:id]).first
しかし、インスタンスを取得したら、日付である publish という列の順序からモデルの次および前のインスタンスを見つけたいと思います。
列による任意の順序の前と次のインスタンスのみのスラッグを取得するにはどうすればよいですか?
::編集::これをモデルに追加するとうまくいきました。
def previous(offset = 0)
self.class.select('slug').first(:conditions => ['published < ?', self.id], :limit => 1, :offset => offset, :order => "published DESC")
end
def next(offset = 0)
self.class.select('slug').first(:conditions => ['published > ?', self.id], :limit => 1, :offset => offset, :order => "published ASC")
end
このソリューションは、名前付きスコープを使用した次の前のレコードで見つけました