0

我在帕德里诺工作,并在我的控制器中有这个

@work.find_by_id(params[:id])

我想在我的视图中添加上一个/下一个按钮,因此必须能够获得列表中下一个项目的路径。如何使用 ActiveRecord 做到这一点?

4

2 回答 2

0

您可能需要查看ActsAsAdjacent 插件。我不确定您是否可以在 Padrino 中使用插件,但代码非常简单,应该能够适应您的需求。

于 2010-10-08T13:58:43.777 回答
0

我像这样使用 PreviousNextable 模块:

module PreviousNextable  

  def self.included(klass)

    klass.class_eval do
      extend ActiveSupport::Memoizable 
      memoize :previous
      memoize :next
    end

  end  

  def previous
    self.class.last :order => 'name', :conditions => ['name < ?', self.name]
  end

  def next
    self.class.first :order => 'name', :conditions => ['name > ?', self.name]
  end

end

此代码改编自 Ryan Bates 给出的 SO 答案。您确定上一个或下一个的顺序和条件可能会有所不同。可能你会想要使用'created_at'。

在模型类中包含模块:

class Place < ActiveRecord::Base
  include PreviousNextable  

你走了。

于 2012-01-05T21:15:16.240 回答