我的问题是我想删除此URL的查询字符串部分并使其清理。
http://staging.mysite.com/mycontroller?name=/philippines/about-manila
目前我有MyController.index()
并在此方法中解析name参数。
我最终想要的是:
http://staging.mysite.com/mycontroller/philippines/about-manila
参数部分'philippines/about-manila'
可以包含任意数量的参数,例如
http://staging.mysite.com/mycontroller/philippines/about-manila/people
我怎样才能在路线上这样做?
答案 0 :(得分:4)
听起来你想要route globbing。如果您使用:
map.my_route '/mycontroller/*parts',
:controller => :mycontroller,
:action => :index
然后转到网址http://staging.mysite.com/mycontroller/philippines/about-manila/people,然后系统会调用mycontroller
控制器的index
操作,params[:parts]
将包含数组["philippines", "about-manila", "people"]
。< / p>
答案 1 :(得分:2)
它真的是任意的 - 还是只是变量?
如果它只是变量,您可以将可选参数括在括号中:
match '/:city(/:section(/:subsection))', :controller => :mycontroller,
:action => :index
对于Rails 2.x:
map.connect '/:city(/:section(/:subsection))', :controller => :mycontroller,
:action => :index
答案 2 :(得分:1)
对于Rails 2.x,您可以使用
map.my_route '/:my_param', :controller => :mycontroller, :action => :index
然后在您的控制器中,您可以访问
params[:my_param]
如果您想要链接,请使用
my_route_path(:my_param => "mytekst")