5

假设我只是rails g scaffold book name:string about:text在“显示”视图上运行,我将如何实现一个按钮以转到模型中的下一个项目。

我不能简单地这样做@next = @book.id + 1,因为如果@book.id = 2(例如)我点击了 id 为 3 的书上的销毁。这将导致页面损坏。

4

1 回答 1

12

你可以做:

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

记得检查@next 是否不为零

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

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

那么如果你有@book,你应该能够像调用它一样

@book.next

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

于 2011-08-26T20:01:25.140 回答