Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails RoR路由问题。新世纪初期的城市_Ruby On Rails_Ruby_Routes - Fatal编程技术网

Ruby on rails RoR路由问题。新世纪初期的城市

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

我有很多这样的链接: /文章/。。。 /专辑/。。。 /照片/。。。 等等

如果用户选择了城市名称,我需要在URL开头使用城市名称: /城市名称/文章/。。。 /城市名称/专辑/。。。 /城市名称/照片/

但是前面的链接也应该有用(/articles/…,/albums/…)

我试过这个:

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") %>