Лучший подход будет группировать вашу коллекцию по типу. А затем визуализировать коллекцию в типе как другую коллекцию.
Вот что я имею в виду (не стесняйтесь менять имена): после перегруппировки по типу коллекции вы получите что-то вроде этого (у него может быть другое формат, но вы поймете идею):
collection = [
{ type: 'Garden', type_collection: [
{
link: '/garden/pot',
svg: '//images/pot.svg',
name: 'Pot of your dreams',
description: 'A perfect pot for any household'
},
{
link: '/garden/flower',
svg: '//images/flower.svg',
name: 'A perfect flower',
description: 'You need to buy it for your garden!'
}
],
type: 'Type #2', type_collection: [
{
link: '/garden/flower2',
svg: '//images/flower.svg',
name: 'A perfect flower from type2',
description: 'You need to buy it for your garden!'
}
]
}]
тогда ваш сайт / основной может иметь что-то вроде этого:
<p>
<h3><%= main[:type] %></h3>
<%= render partial: 'site/type_collection', collection: main[:type_collection] %>
</p>
и ваш сайт / type_collection будет иметь то, что вы изначально имел:
<p>
<%= type_collection[:link] %>
</p>