Ruby on rails RoR路由问题。新世纪初期的城市
我有很多这样的链接: /文章/。。。 /专辑/。。。 /照片/。。。 等等 如果用户选择了城市名称,我需要在URL开头使用城市名称: /城市名称/文章/。。。 /城市名称/专辑/。。。 /城市名称/照片/ 但是前面的链接也应该有用(/articles/…,/albums/…) 我试过这个:Ruby on rails RoR路由问题。新世纪初期的城市,ruby-on-rails,ruby,routes,Ruby On Rails,Ruby,Routes,我有很多这样的链接: /文章/。。。 /专辑/。。。 /照片/。。。 等等 如果用户选择了城市名称,我需要在URL开头使用城市名称: /城市名称/文章/。。。 /城市名称/专辑/。。。 /城市名称/照片/ 但是前面的链接也应该有用(/articles/…,/albums/…) 我试过这个: map.articles '/articles/', :controller => "zags", :action => "cities", :using_city => 1 map.art
map.articles '/articles/', :controller => "zags", :action => "cities", :using_city => 1
map.articles '/:city_url/articles/', :controller => "zags", :action => "cities", :using_city => 1
<%= link_to "London articles", articles_path, { :city_url => "london", :using_city => 1 } %>
map.articles'/articles/,:controller=>“zags”,:action=>“cities”,:using_city=>1
map.articles'/:city\u url/articles/,:controller=>“zags”,:action=>“cities”,:using\u city=>1
“伦敦”:使用城市=>1}%>
但它不起作用。
我应该换什么?
我知道,我可以更改其中一个地图名称“map.articles”,但我想在我的视图代码中使用相同的路由名称。我如何才能做到这一点?我想你只是创建了错误的url。应该是这样的:
<%= link_to "London articles", articles_path(:city_url => "london", :using_city => 1) %>
顺便说一句,如果您使用的是rails 3,我建议使用以下路由定义
match "(:city_url/)articles/", :controller => "zags", :action => "cities", :using_city => 1, :as => "articles"
这两种情况都适用,因此:city\u url
成为可选参数。在这种情况下,您的路径将只是文章\u路径
,url看起来像/articles/
如果您通过文章路径(“伦敦”)
您的url将看起来像/london/articles/
希望这能有所帮助。您应该能够通过一条路线完成此操作:
map.articles '(/:city)/articles', :controller => 'zags', :action => 'cities'
<%= link_to "Articles", articles_path %>
<%= link_to "London Articles", articles_path(:city => "london") %>
map.articles'(/:city)/articles',:controller=>'zags',:action=>'cities'
“伦敦”)%%>
map.articles '(/:city)/articles', :controller => 'zags', :action => 'cities'
<%= link_to "Articles", articles_path %>
<%= link_to "London Articles", articles_path(:city => "london") %>