Rails 4:如果没有指定HTTP方法,则不应在路由器中使用`match`方法

好的,所以我已经升级到Rails 4(与我的10.9服务器更新有点计划外)并且能够在我的照片库应用程序上运行除路由之外的所有内容。 由于某些原因,我一直无法理解路由,因为rails 3.这是我之前在Rails 3下的工作代码

root :to => "gallery#index", :as => "gallery" get 'gallery' => 'gallery#index' resources :galleries match 'gallery_:id' => 'gallery#show', :as => 'gallery' 

我知道匹配已被折旧,但如果我尝试使用GET,我会收到以下错误:

已使用的路径名无效:’gallery’您可能使用:as选项定义了两个具有相同名称的路由,或者您可能覆盖已由具有相同命名的资源定义的路由。

基本上,我希望根(索引)加载为“/ photos / gallery”,然后加载我的show动作,例如,将id 435记录为:“/ photos / gallery_435”这就是我以前的方式工作。 对不起,这可能是一个简单的问题,我似乎无法掌握rails路由。

试试这个

 match 'gallery_:id' => 'gallery#show', :via => [:get], :as => 'gallery_show' 

然后,您可以在帮助程序和视图中将此路径称为gallery_show_path。

更改“as”可消除冲突。