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

Kee*_*son 5 views ruby-on-rails models scaffold

假设我只是rails g scaffold book name:string about:text在'show'视图中​​运行,我将如何实现一个按钮来转到模型中的下一个项目.

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

mkk*_*mkk 12

你可以做:

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

记得检查@next不是零

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

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

那么如果你有@book,你应该可以调用它

@book.next
Run Code Online (Sandbox Code Playgroud)

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