4
假設我只是跑了rails g scaffold book name:string about:text
在'show'視圖中,我將如何實現按鈕以轉到模型中的下一個項目。Ruby on Rails:獲取模型中的下一項
我不能簡單地做@next = @book.id + 1
,因爲如果@book.id = 2
(例如),我點擊銷燬id爲3的書。它會導致一個破損的頁面。
假設我只是跑了rails g scaffold book name:string about:text
在'show'視圖中,我將如何實現按鈕以轉到模型中的下一個項目。Ruby on Rails:獲取模型中的下一項
我不能簡單地做@next = @book.id + 1
,因爲如果@book.id = 2
(例如),我點擊銷燬id爲3的書。它會導致一個破損的頁面。
你可以這樣做:
@next = Book.first(:conditions => ['id > ?', @book.id], :order => 'id ASC')
記住要檢查whever @next不是零
要更酷,你可以在模型中創建一個方法,像這樣:
def next
Book.first(:conditions => ['id > ?', self.id], :order => 'id ASC')
end
那麼如果你有@book,你應該可以調用它,就像
@book.next
最近沒有在RoR上寫過任何東西,但是這對我來說看起來很合理;)
而我正要做到這一點:http://duanesbrain.blogspot.com/2008/11/ruby-on-rails- get-next-activerecord.html –
很棒,真的很棒。謝謝! –