Во-первых, позвольте мне заметить, что вам нужно определить логику того, куда вы хотите ссылаться для каждого из отдельных элементов крошки.
Насколько я могу судить из вашего примера, вы используете следующее соглашение для определения места назначения ссылки для определенной крошки:
Ссылка назначения для хлебных крошек состоит из:
- префикс статического пути (который в вашем случае будет
http://localhost:3000/int/en/admin/assets/
),
- объединение всех хлебных крошек более высокого или того же уровня, к которым присоединяется
/
. В случае item = 'company'
это будет downloads/company
,
- и статический суффикс
/path
.
Для создания этих ссылок вы можете использовать следующий код:
<ol class="breadcrumb">
<li><%= link_to 'Start', admin_assets_path %></li>
<%
items = @prefix.split("/")
prefix = admin_assets_path
suffix = '/path'
%>
<% items.each.with_index do |item, i| %>
<%
middle = items[0..i].join('/')
path = prefix + middle + suffix
%>
<li> <%= link_to "/ #{item}", path %></li>
<% end %>
</ol>
Однако ваш фактический вопрос был:
Как должна быть логика, чтобы каждый крошка имел свой собственный URL?
Ваше текущее соглашение (ссылки в виде хлебных крошек) имеет некоторые ограничения, например, интернационализация трудна, и мы не можем поддерживать случаи, когда логическая структура хлебных крошек не отражает структуру URL.
Вы можете использовать что-то вроде хэш-карты или древовидной структуры, чтобы смоделировать фактическую структуру сайта или взглянуть на драгоценные камни, созданные для этой цели, например breadcrumbs_on_rails .