【发布时间】:2014-02-20 12:23:15
【问题描述】:
这样的路线怎么做?
www.site.com/clothing/men/T-Shirts_type/Nike_brand/100-500_price/Red,White,Blue_color/
www.site.com/clothing/woman/Nike_brand/100-500_price/Red,White,Blue_color/
应始终有序:
www.site.com/Sex/Type/Brand/Price/Color
即使没有插入所有可用选项:
www.site.com/Type/Color
标识符总是_something。
逗号可以输入多个项目。
编辑 01
我需要路由理解 Value_something。 然后像这样返回:
param[:_something] = Values
例如:01 - 一个属性
URL: site.com/clothing/men/T-Shirts_type
param[:_type] = T-Shirts
例如:02 - 两个属性
URL: site.com/clothing/men/T-Shirts_type/Nike_brand
param[:_type] = T-Shirts
param[:_brand] = Nike
例如:03 - 没有顺序的两个属性
URL: site.com/clothing/men/Nike_brand/T-Shirts_type
param[:_brand] = Nike
param[:_type] = T-Shirts
例如:04 - 属性中的多个参数
URL: site.com/clothing/men/Red,White,Blue_color
param[:_color] = Red,White,Blue
例如:05 - 所有属性与顺序
URL: site.com/clothing/men/T-Shirts_type/Nike_brand/100-500_price/Red,White_color
param[:_type] = T-Shirts
param[:_brand] = Nike
param[:_price] = 100-500
param[:_color] = Red,White
例如:05 - 所有属性没有顺序
URL: site.com/clothing/men/Red,White_color/T-Shirts_type/100-500_price/Nike_brand
param[:_color] = Red,White
param[:_type] = T-Shirts
param[:_price] = 100-500
param[:_brand] = Nike
【问题讨论】:
-
无法理解您的问题。你想做什么?
-
我想知道您是否可以利用现有的电子商务平台,如Spree,而不是从头开始编写这些东西。我不认为这是您将遇到的第一个电子商务特定挑战,而且我认为这些问题中的大多数可能已经被其他人解决了。
-
@JasonSwett 我不会创建电子商务系统,这只是一个例子。如果是,肯定会使用现成的服务。谢谢。
-
我不认为路由解析器可以做这样的巧妙处理,即拆分组件,使用拆分的第一部分作为参数名,最后一部分作为值.您需要在控制器中执行此操作,尽管您可以有一个前置过滤器来执行此操作,如果这将在许多不同的操作中完成。
-
查看我的答案的编辑,将路径片段转换为参数。
标签: ruby-on-rails ruby ruby-on-rails-4 routes rails-routing