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

Cor*_*ley 12 ruby-on-rails ruby-on-rails-4

好的,所以我已经升级到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'
Run Code Online (Sandbox Code Playgroud)

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

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

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

Pet*_*ein 26

试试这个

match 'gallery_:id' => 'gallery#show', :via => [:get], :as => 'gallery_show'
Run Code Online (Sandbox Code Playgroud)

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

更改"as"可消除冲突.