You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Rails实现各层级面包屑对应独立URL的方法问询

解决面包屑层级URL问题

这个问题很常见,核心是你需要逐步构建每个面包屑对应的累积路径,而不是直接复用完整的@prefix。咱们来调整视图代码,实现每个面包屑指向对应层级的URL:

<ol class="breadcrumb">
  <li><%= link_to 'Start', admin_assets_path %></li>
  <% current_path_fragments = [] %>
  <% @prefix.split("/").each do |item| %>
    <% current_path_fragments << item %>
    <% # 构建当前层级的完整路径片段 %>
    <% current_full_path = current_path_fragments.join("/") %>
    <li>&nbsp<%= link_to "/ #{item}", admin_assets_path(asset_id: current_full_path) %></li>
  <% end %>
</ol>

逻辑说明:

  1. 初始化一个空数组current_path_fragments,用来逐步存储路径片段
  2. 遍历@prefix.split("/")得到的每个子目录名称:
    • 把当前item追加到数组中,数组会依次变成[downloads] → [downloads, company] → [downloads, company, brochure]
    • 用join("/")把数组拼成当前层级的完整路径字符串
    • 把这个字符串作为asset_id参数传入admin_assets_path,生成对应层级的URL

这样处理后,每个面包屑的链接就会完全符合你的需求:

  • downloads → http://localhost:3000/int/en/admin/assets?asset_id=downloads(如果你的路由是路径参数格式,会自动适配成你示例中的URL样式)
  • company → http://localhost:3000/int/en/admin/assets?asset_id=downloads/company
  • brochure → http://localhost:3000/int/en/admin/assets?asset_id=downloads/company/brochure

内容的提问来源于stack exchange,提问作者AccNeeder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 08:33:21