Rails4路由:是否可以直接在root下使用永久链接或参数?

时间:2013-08-03 00:05:07

标签: ruby-on-rails routing wildcard root ruby-on-rails-4

我正在尝试

get ":site_name", to: 'public_site#index' 

希望

get("/catsfrommars").should route_to("public_site#index")

不幸的是,我将:site_name路由为一个操作:

No route matches {:controller=>"public_site", :action=>"/catsfrommars"}

我也试过

get "/:site_name", to: 'public_site#index' 
get "(:site_name)", to: 'public_site#index' 

并且:site_name参数仍然作为指定控制器上的操作进行路由。

有关如何修复此问题并获取:site_name作为参数的任何想法?

编辑:我正在尝试做类似的事情:Rails Routing Question: Mapping Slugs/Permalinks Directly under Root?但使用Rails4语法。一旦我开始工作,我将使用约束来隔离命名空间的应用程序路由。

1 个答案:

答案 0 :(得分:0)

路线正常,问题出在rSpec上。

{get: "/catsfrommars"}.should route_to(controller: "public_site", 
     action: "index", site_name: "catsfrommars")

解决了这个问题,更具体地说是将其移动到一个区块中。