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

Rails如何从数组映射名称与ID以构建link_to链接?

修改方案

你的问题出在@parents.map(&:name)这一步——把分类对象转换成纯名字数组后,丢失了id信息。直接遍历原分类对象集合就能同时拿到name和id,具体修改如下:

修改后的视图代码

<% @parents.each do |parent| %>
    <%= link_to parent.name, new_sr_path(class_id: parent.id, sub: :true), class: "form-control" %><svg ...</svg>
<% end %>

后端逻辑保持不变

@parents = @classification.ancestors.to_a.reverse if params[:class_id].present?

改动说明

  • 去掉map(&:name),直接遍历@parents里的分类对象,这样每个parent都能同时访问到name(面包屑显示文本)和id(路径参数)
  • 把link_to里的class_id: parent改成class_id: parent.id,确保传递的是分类的id而非名称
  • 保留reverse是为了让面包屑从最顶层父级到当前分类的直接父级顺序展示,符合面包屑的层级逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 16:00:49