Ruby on Rails的下一首/上一篇文章下一個元素對象
我有一個索引頁 - 帖子#指數,具有鏈接到網頁顯示每個帖子。每個帖子引用特定主題並可能在不同時間創建,因此帖子的ID不一定是該主題中所有帖子的順序。我希望能夠去下一個&以前的帖子爲特定的主題。
在我的PostsController我有實例變量,所有職位的主題和特定主題正在顯示
def index
@topic = Topic.find(params[:topic_id])
@posts = @topic.posts.all
end
def show
@topic = Topic.find(params[:topic_id])
@posts = @topic.posts.all
@post = @topic.posts.find(params[:id])
end
@posts是活動記錄對象的數組 @posts => #<ActiveRecord::AssociationRelation [ #<Post id: 73, topic_id: 3>, #<Post id: 74, topic_id: 3>, #<Post id: 76, topic_id: 3>, #<Post id: 77, topic_id: 3>, #<Post id: 91, topic_id: 3>]
如果這是我可以使用@posts.index(@post)
來查找數組中的特定元素的ID,然後執行index + 1
或index - 1
來遍歷帖子數組,但.index
是活動記錄中的一種不同方法。如果我在特定主題中的任何指定帖子的展示頁面上,例如,Post id: 76
例如,如何以特定主題中的任何帖子適用的方式訪問link_to Post id: 74
(下一個)和link_to Post id: 77
(上一個)?
感謝這是一個很好的簡潔的解決方案,我需要什麼。我最終改變了。首先讓它們正確循環。 (@ post.id)。'first' to '@next_post = posts.where('posts.id>?',@ post.id)。@next_post = posts.where('posts.id>?',@ post.id)最後' –