在 Rails 4 中自定义资源路由

Customize resource routing in Rails 4

photo-class的资源路由为例。

如果我对 routes.rb 这样做,我将获得以下路线:

resources :photos

# GET '/photos/', :to => 'photos#index'
# GET '/photos/:photo_id/, :to => 'photos#show'
# and so on and so on

现在我想要的是用简单的 /p 替换所有路由中的单词 /photos 这样我就可以得到一个像 /p/1 这样的短 URL第一张照片。有没有办法简单地改变 resource 行,或者我必须手动添加每条路线?

这将使您的所有路线通过 :photosp

resources :p, :controller => "photos" 

为了更简洁并避免 p_id 的问题,您可以这样做:

resources :photos, path: 'p'

这样,您就可以从自己的可读性中获益(它将生成像 edit_photo_path 这样的助手,在嵌套路由等情况下,您将像 photo_id 一样访问变量)并生成您确实需要的命名 URL。