我是Ruby和Ruhoh的新手,我正在尝试做类似“Rails each loop insert tag every 6 items?”的事情,但我正在使用Ruhoh。
基本上,我有一个帖子列表和每3个帖子我想创建一个新的行div。
我查看了所有Ruhoh文档,似乎没有一种简单的方法可以做到这一点。我想我需要在Ruhoh中为一个集合创建一个插件,但是没有ruby的经验我真的不明白我在做什么。任何正确方向的帮助或指导都会很棒,
干杯。
答案 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 }}
希望这有帮助。