【发布时间】:2020-06-18 20:20:31
【问题描述】:
我们在remote.tools 有一个rails 应用程序,如果您看到产品页面(请参阅this page),就会发现每个产品都有一组标签。我计划在类别页面上根据这些标签过滤搜索(请参阅this page)。现在,我已经尝试使用 'Acts-as-taggable' gem 和 'Simple-form' 来做这件事(基础this blog)。
我可以在点击“搜索”或在原地执行时刷新页面(现在可以同时执行这两项操作)。但是,我希望根据用户应用的过滤器组合创建唯一的 URL。例如,如果用户选择“视频通信工具”作为类别,并选择“免费试用”和“易于使用”作为标签,则页面 URL 应为“/video-communication-tools-with-free-trial” - 易于使用”。目前,过滤器选项作为参数传递,即“/search?category=xx&tags=yy”。
为过滤器组合使用单独的 URL 将允许我创建用于索引的唯一页面并根据上下文添加内容。
我该怎么做呢?
【问题讨论】:
-
但是为什么必须在 URL 中传递数据,而不是使用 POST 请求并在参数中传递数据。
-
对。但问题不在于传递数据,而是根据数据生成动态 URL。
-
这个动态网址会被使用一次吗?
-
我希望模仿此页面上的行为 - nomadlist.com/affordable-places-in-europe。如果您尝试过滤器,您将看到 URL 发生变化,并且每个组合都是一个新页面。
-
坦率地说,我不相信这个想法,因为您必须为每个可能的类别/标签组合动态生成一个巨大的路线列表,或者使用完全疯狂的正则表达式,然后尝试从
/video-communication-tools-with-free-trial-that-are-easy-to-use解析出类别和标签。请求该功能的人忽略了它的复杂性,如果您有极长的虚 URL,它完全没有意义。
标签: ruby-on-rails url-rewriting url-routing