我无法在我的视图中解决问题。
我必须在一个页面上显示我的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
我想你明白我的意思