Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.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 3 铁路线路问题_Ruby On Rails 3_Routing - Fatal编程技术网

Ruby on rails 3 铁路线路问题

Ruby on rails 3 铁路线路问题,ruby-on-rails-3,routing,Ruby On Rails 3,Routing,我有一个网站,人们可以浏览艺术家和他们的专辑。我已按如下方式设置了我的路线: match 'albums/[:id]/[:album_id]' => 'albums#show', :as => 'artist_album' 我尝试设置一个嵌套路由,如: resources :artists do resources :albums end 但我不知道如何实现第一个示例中的路由。。。但这是另一个问题。。。这是我在尝试渲染artist\u album\u路径时的代码 <%= l

我有一个网站,人们可以浏览艺术家和他们的专辑。我已按如下方式设置了我的路线:

match 'albums/[:id]/[:album_id]' => 'albums#show', :as => 'artist_album'
我尝试设置一个嵌套路由,如:

resources :artists do
resources :albums
end
但我不知道如何实现第一个示例中的路由。。。但这是另一个问题。。。这是我在尝试渲染
artist\u album\u路径时的代码

<%= 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"])}") %>

我不断地发现这个错误:
没有路由匹配{:controller=>“albums”,:action=>“show”,:id=>“/Beastie+Boys/Licensed+To+Ill”}

知道我做错了什么吗?

在routes.rb中:

match 'albums/:id/:album_id' => 'albums#show', :as => 'artist_album'
在你看来:

<%= link_to image_tag(...), artist_album_path(:id => ..., :album_id => ...) %>
…,:相册id=>…)%>

谢谢!我尝试了你的答案,但我现在得到了这个错误:
没有路线匹配{: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”}
。。。出于某些原因,它导致了问题。您可以使用
friendly\u id
gem作为路由中的艺术家姓名/专辑标题。friendly\u id gem的唯一问题是项目标题来自API调用而不是DB调用