0

我正在尝试

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 语法。一旦我让它工作,我将使用约束来隔离命名空间的应用程序路由。

4

1 回答 1

0

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

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

解决了它,更具体地说,将 get 移动到一个块中。

于 2013-08-07T00:29:29.527 回答