activerecord集合的自定义顺序



我无法在我的视图中解决问题。

我必须在一个页面上显示我的Content类的内容集合。我的Content类有一些定义内容类型的子类:"新闻"、"评论"、"视频"。等。

在我的视图中,我需要呈现一个自定义顺序的内容列表:

news
news
news
news
content of any other type
news
news
news
news
content of any other type
...

基本上我需要显示每4个新闻的内容不是新闻。

现在在我的控制器中有

all_contents = @special_page.contents
@news = all_contents.select { |c| c.type == 'News' }
@contents = all_contents - @news  

@contents是一个对象数组,其中每个内容都不是新闻,并且在视图中使用一些技巧(在枚举器中使用索引),我能够获得我需要的内容。

但后来我意识到我有一个问题:我有Kaminari分页,当我请求下一页时,我不能使用这个系统进行第二页。

所以我需要得到一个已经排序的内容的集合,我不明白怎么做。

可能只是paginate "news"在视图(甚至控制器)中加入一些逻辑,

@news.each_with_index do |item, index|
if index % 4 == 0
= render 'some_other_item'
end
= render 'post', post: item
end

我想你明白我的意思

相关内容

  • 没有找到相关文章

最新更新