0

在一個簡單的博客應用程序中,某人可以閱讀文章並決定閱讀下一篇文章,而無需再次閱讀文章列表,但請點擊下一步按鈕並將該人員帶到此列表中的下一篇文章。如何才能做到這一點。我曾與willpaginate和kaminari合作過,他們都是分頁的絕佳插件。我想要一個下一個和上一個鏈接,描繪下一篇和之前的文章

所以現在在表演的動作,我想有一個featches下一個和以前的文章下一個和以前的鏈接我如何做到這一點

簡單的代碼示例如下與

def show 
    @article = Article.find(params[:id]) 
end 

回答

1

你可以添加一個方法來Article得到取決於你的意思是下一個和以前有什麼下一個和以前的文章 - 也就是你想要什麼樣的順序在文章

例如與created_at用於定義假定什麼事都沒有,在創建日期一樣的,所以你可能要檢查對ID也可能是有點過於簡單化的順序

def next 
    self.class.find(
    :first, 
    :conditions => ["created_at > ?", self.created_at], 
    :order => 'created_at, id') 
end 

def previous 
    self.class.find(
    :first, 
    :conditions => ["created_at < ?, self.created_at], 
    :order => 'created_at desc, id desc') 

。喜歡的東西:

:conditions => ["created_at > ? or (created_at = ? and id > ?)", self.created_at, self.created_at, self.id] 

如果你只是想通過ID訂購那就更微不足道的IDS可以永遠是相同的:

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

def previous 
    self.class.find(:first, 
    :conditions => ['id < ?', self.id], 
    :order => 'id desc') 
end 
+0

我不想分頁陣列我只想去artiscl和閱讀,而不是去索引行動,以查看更多我想通過單擊下一個按鈕來閱讀下一篇文章,所以它獲得文章與編號高於我正在閱讀的那個 – Uchenna 2012-02-21 23:23:25

+0

是的,這就是我的想法。因此,在您的顯示頁面上,您可以執行link_to(「Next」,article_url(@ article.next))'。如果僅僅是通過身份證的方式,那麼你的條件就更容易了,你可以檢查身份證是否大於你所擁有的身份證和身份證。 – Shadwell 2012-02-21 23:26:00

+0

你可以告訴我如何設置條件 – Uchenna 2012-02-21 23:36:07

0

工作,你可以使用Willpaginate插件來解決你的問題。 https://github.com/mislav/will_paginate

+0

我不想分頁數組列表我只是想要去artiscl和閱讀,而不是去索引行動,以查看更多我想通過單擊下一個按鈕來閱讀下一篇文章,所以它得到的文章與我正在閱讀的ID高於。 – Uchenna 2012-02-21 23:22:59

+0

該OP提到了問題中的will_paginate gem。 – 2016-08-05 05:47:17

相關問題