2011-10-10 164 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作爲路線中的藝術家名稱/專輯標題。 –