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

Ruby与Nanoc技术求助:创建批量手册搜索URL

帮你生成Nanoc的全手册搜索URL

嘿,作为Ruby和Nanoc的新手就能接手项目,已经超棒啦!我来一步步帮你实现这个一次性列出所有SUV手册的搜索URL需求~

首先,先理清楚你现有代码的逻辑:它已经能筛选出所有标签为suv的汽车手册,还做了分栏展示。现在要做的就是把这些筛选好的手册整合到一个搜索URL里,点击就能一次性查看所有结果。

方案1:基于手册标识生成聚合搜索URL

如果你的搜索页面是通过手册的唯一标识来批量查询的,可以这么做:

<div>
  <% 
    # 原有的手册筛选逻辑
    manuals = @items.find_all('/manuals/autos/*')
                    .select {|item| item[:tag] == 'suv' }
                    .sort_by {|item| item[:search] }

    # 获取所有手册的唯一标识(这里用Nanoc的item.identifier,你也可以换成item[:slug]或其他自定义字段)
    manual_identifiers = manuals.map { |item| item.identifier.to_s.tr('/', '-') }.join(',')

    # 拼接搜索URL,假设你的搜索页面路径是/search,参数名是manuals
    all_manuals_search_url = "/search?manuals=#{manual_identifiers}"
  %>

  <!-- 展示搜索链接 -->
  <p><a href="<%= all_manuals_search_url %>">查看所有SUV手册</a></p>

  <!-- 你原有的分栏展示代码 -->
  <% manuals.each_slice((manuals.size / 4.0).ceil).each do |manuals_column| %>
    <!-- 这里保留你原来的分栏内容逻辑 -->
  <% end %>
</div>

方案2:基于标签直接生成搜索URL

如果你的搜索系统支持按标签筛选(这其实更简洁好维护!),那根本不需要手动拼接所有手册ID,直接用你已经在筛选的suv标签就行:

<div>
  <% 
    # 原有的手册筛选逻辑
    manuals = @items.find_all('/manuals/autos/*')
                    .select {|item| item[:tag] == 'suv' }
                    .sort_by {|item| item[:search] }

    # 直接生成按标签搜索的URL
    all_manuals_search_url = "/search?tag=suv"
  %>

  <p><a href="<%= all_manuals_search_url %>">查看所有SUV手册</a></p>

  <!-- 你原有的分栏展示代码 -->
  <% manuals.each_slice((manuals.size / 4.0).ceil).each do |manuals_column| %>
    <!-- 这里保留你原来的分栏内容逻辑 -->
  <% end %>
</div>

小提示

  • 如果你用方案1,记得在搜索页面里处理manuals参数:把逗号分隔的字符串拆成数组,再用@items.find_all匹配对应的手册。
  • 方案2的前提是你的搜索页面已经支持通过tag参数筛选内容,这样以后新增SUV手册也不用修改这个链接,维护起来更省心~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 04:17:01