2011-10-10 130 views
0

我有一个网站的人可以浏览艺术家和他们的相册。我有安装像这样我的路线:导轨路由问题

match 'albums/[:id]/[:album_id]' => 'albums#show', :as => 'artist_album' 

我试着建立一个嵌套的路径,如:

resources :artists do 
resources :albums 
end 

,但我无法弄清楚如何实现路由像在第一个例子.. 。但是那一个不同的问题...这是我的代码试图呈现artist_album_path

<%= link_to image_tag("#{album["Images"]["Album150x150"]}", width: "122", alt: "#{@term}", class: "float-left"), artist_album_path("/#{CGI::escape(album["Artist"]["Name"])}/#{CGI::escape(album["Title"])}") %> 

我不断收到此错误时: No route matches {:controller=>"albums", :action=>"show", :id=>"/Beastie+Boys/Licensed+To+Ill"}

有什么想法,我做错了什么?

回答

1

在routes.rb中:

match 'albums/:id/:album_id' => 'albums#show', :as => 'artist_album' 

在你看来:

<%= link_to image_tag(...), artist_album_path(:id => ..., :album_id => ...) %> 
+0

谢谢!我尝试了你的答案,但我现在得到这个错误:'没有路线匹配{:controller =>“albums”,:action =>“show”,:id =>“Beastie + Boys”,:album_id =>“Don %27t + Play + No + Game + That + I + Can%27t + Win +%28Feat。+ Santigold%29 +%28Remix + EP%29“}' – dennismonsewicz

+0

没关系,我将'album_id'改为专辑与专辑标题...它由于某种原因导致问题 – dennismonsewicz

+0

您可以使用'friendly_id' gem作为路线中的艺术家名称/专辑标题。 –