【问题标题】:Ruby on Rails: Get next item in modelRuby on Rails:获取模型中的下一项
【发布时间】:2011-11-04 19:28:48
【问题描述】:
假设我只是在“显示”视图上运行rails g scaffold book name:string about:text,我将如何实现一个按钮以转到模型中的下一个项目。
我不能简单地做@next = @book.id + 1,因为如果@book.id = 2(例如)我点击了id为3的书上的destroy。这会导致页面损坏。
【问题讨论】:
标签:
ruby-on-rails
views
models
scaffold
【解决方案1】:
你可以这样做:
@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 中写过任何东西,但这在我看来是合理的;)