首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >带有动态数据和常量路由提示的Ruby路由

带有动态数据和常量路由提示的Ruby路由
EN

Stack Overflow用户
提问于 2015-01-06 23:58:33
回答 2查看 24关注 0票数 0

我是新的红宝石,有一个半复杂的路线,我想要建立创建动态网站地图,列出乔布斯在我们的网站

我的控制器名为SiteMap,SiteMap的路由位置是查询的'q‘

我们已经有工作了

  1. 行业,例如酒店业、零售业
  2. 地点,例如悉尼、墨尔本
  3. 按地点分列的工业,例如悉尼的酒店业

URL签名的一部分由常量值组成,这些值有助于确定要使用的三种路由类型中的哪一种。

  1. 按行业分类
    • Www.Somedomain.com/j/临终关怀-就业
    • 提示:-jobs后缀将设置:industry param
    • :industry => hospitality

  1. 按位置划分
    • Www.Somedomain.com/j/就业机会-在悉尼
    • 提示:jobs-in-前缀将设置:location
    • :location => sydney

  1. 按行业和地点分列
    • www.somedomain.com/j/hospitality-jobs/in-sydney
    • 如上所示,但分布在两个url段上。
    • :industry => hospitality
    • :location => sydney

如果有丰富的变量表示动态数据和类型(即type = Industry ),我要么想根据路径进行3个不同的操作,要么就选择一个操作。

EN

回答 2

Stack Overflow用户

发布于 2015-01-07 00:27:44

我认为唯一能做到这一点的方法就是使用一条通航路线:

代码语言:javascript
运行
复制
get '/j/*path', to: 'jobs#route'

(控制器操作需要更好的名称。)

该操作使用您的逻辑读取路径,并使用redirect_to使用适当的参数将路径路由到正确的路径。

票数 0
EN

Stack Overflow用户

发布于 2015-01-07 01:56:34

我让所有三条路线都能工作,再加上第四条抓捕所有错误URL的路径

代码语言:javascript
运行
复制
get '/q/(:industry)-jobs' => 'sitemap#industry', :as => :sitemap_by_industry
get '/q/jobs-in-(:location)' => 'sitemap#location', :as => :sitemap_by_location
get '/q/(:industry)-jobs/in-(:location)' => 'sitemap#industry_location', :as => :sitemap_by_industry_location

# This catch is used if someone starts playing around with the URL's and we can't map to the three listed routes
get '/q(/:bad1(/:bad2))' => 'sitemap#sitemap', :as => :sitemap
  1. Www.Somedomain.com/q/临终关怀-就业
    • 正在进入1号公路并设置:
    • :industry => hospitality

  1. Www.Somedomain.com/q/就业机会-悉尼
    • 正在进入2号公路并设置:
    • :location => sydney

  1. www.somedomain.com/q/hospitality-jobs/in-sydney
    • 正在到达三号公路并设置:
    • :industry => hospitality
    • :location => sydney

  1. 折叠无效的URL将全部命中第4条捕获所有路由
    • www.somedomain.com/q
    • www.somedomain.com/q/
    • Www.Somedomain.com/q/临终关怀-joXXbs
    • sydney://www.Somedomain.com/q/jobXXs-悉尼
    • www.somedomain.com/q/hospitality-jobXXs/in-sydney

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27809351

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档