【问题标题】: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 中写过任何东西,但这在我看来是合理的;)

    【讨论】:

    猜你喜欢
    • 2021-08-27
    • 1970-01-01
    • 2016-07-27
    • 2020-04-23
    • 1970-01-01
    • 2018-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多