Activerecord 活动记录关系中的上一条记录和下一条记录-Rails 6
我有以下模型:课程、主题、类别、文章Activerecord 活动记录关系中的上一条记录和下一条记录-Rails 6,activerecord,ruby-on-rails-6,Activerecord,Ruby On Rails 6,我有以下模型:课程、主题、类别、文章 一门课程有很多主题 一个主题有许多类别 一个类别有许多文章 我需要实现一个下一篇文章btn,它将返回当前类别中的下一篇文章,然后跳转到第二篇,当主题中的类别完成时,跳转到下一个主题,依此类推。主题、类别和文章按custom\u order:integer属性排序 我让它像这样工作,但我真的认为它必须是一个更好的方式:) 基本上获取课程中的所有文章,并使用ActiveRecord\u关系作为数组返回。在articles\u控制器中获取当前文章的索引,并返回
- 一门课程有很多主题
- 一个主题有许多类别
- 一个类别有许多文章
custom\u order:integer
属性排序
我让它像这样工作,但我真的认为它必须是一个更好的方式:)
基本上获取课程中的所有文章,并使用ActiveRecord\u关系
作为数组返回。在articles\u控制器中
获取当前文章的索引,并返回all\u articles[index+1]
。
如果没有返回任何记录(nil
),则没有剩余的文章
# course.rb
def all_articles
Article.published
.includes(category: :topic)
.where(categories: { topic: [topics] })
.order('topics.custom_order, categories.custom_order, articles.custom_order')
end