Ruby on Rails:获取模型中的下一个项目

时间:2011-08-26 19:58:10

标签: ruby-on-rails views models scaffold

说我只是简单地运行了rails g scaffold book name:string about:text在'show'视图中​​,我如何实现一个按钮来转到模型中的下一个项目。

我不能简单地执行@next = @book.id + 1,因为如果@book.id = 2(例如)和我点击了ID为3的书籍,那么会导致页面损坏。

1 个答案:

答案 0 :(得分:12)

你可以这样做:

 @next = Book.first(:conditions => ['id > ?', @book.id], :order => 'id ASC')

请记住检查@next不是nil

为了更酷,您可以在模型中创建一个方法,如下所示:

def next
  Book.first(:conditions => ['id > ?', self.id], :order => 'id ASC')
end

然后,如果您有@book,您应该可以像

一样调用它
@book.next

最近没有在RoR中写过任何东西,但这对我来说看起来很合理;)