Ruhoh - 每隔x项插入一次标记

时间:2014-06-04 15:24:48

标签: ruby mustache ruhoh

我是Ruby和Ruhoh的新手,我正在尝试做类似“Rails each loop insert tag every 6 items?”的事情,但我正在使用Ruhoh。

基本上,我有一个帖子列表和每3个帖子我想创建一个新的行div。

我查看了所有Ruhoh文档,似乎没有一种简单的方法可以做到这一点。我想我需要在Ruhoh中为一个集合创建一个插件,但是没有ruby的经验我真的不明白我在做什么。任何正确方向的帮助或指导都会很棒,

干杯。

1 个答案:

答案 0 :(得分:3)

我自己对ruby很新,但我认为这个解决方案可以满足您的需求!

在名为plugin的{​​{1}}目录中创建一个新文件(如果它尚不存在)。

将此添加到该文件:

pages_collection_view_addons.rb

在您的模板中添加以下内容:

module PagesCollectionViewAddons
  def chunks(n = 3)
    # Get all the pages
    pages = all
    chunks = []

    # Split the 'pages' array into chunks of size n
    pages.each_slice(n) { |slice|
        chunks.push({pieces: slice})
    }
    chunks
  end
end

# Inform Ruhoh of this new addon
Ruhoh::Resources::Pages::CollectionView.send(:include, PagesCollectionViewAddons)

这将迭代每个块的每个块:

{{# posts.chunks}} <div class="row"> {{# pieces }} <h1>{{ title }}</h1> {{/ pieces }} </div> {{/ posts.chunks }}

希望这有帮助。