我正在尝试
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语法。一旦我开始工作,我将使用约束来隔离命名空间的应用程序路由。
答案 0 :(得分:0)
路线正常,问题出在rSpec上。
{get: "/catsfrommars"}.should route_to(controller: "public_site",
action: "index", site_name: "catsfrommars")
解决了这个问题,更具体地说是将其移动到一个区块中。