12

好的,所以我已经升级到 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”,并且我的显示操作要加载,例如,将 id 435 记录为:“/photos/gallery_435”,这就是我以前的方式在职的。对不起,这可能是一个简单的问题,我似乎无法掌握轨道路由。

4

1 回答 1

28

尝试这个

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

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

更改“as”可以消除冲突。

于 2013-11-05T20:43:10.410 回答