Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.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 4 在Rails 4中自定义资源路由_Ruby On Rails 4_Routes_Resources - Fatal编程技术网

Ruby on rails 4 在Rails 4中自定义资源路由

Ruby on rails 4 在Rails 4中自定义资源路由,ruby-on-rails-4,routes,resources,Ruby On Rails 4,Routes,Resources,以photo-类的资源路由为例 如果我将此链接添加到我的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。有没有办法简单地

photo
-类的资源路由为例

如果我将此链接添加到我的
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。有没有办法简单地更改
资源
-行,或者我必须手动添加每条路线?

这将通过
:photos
p
创建所有路线

resources :p, :controller => "photos" 

这将使您的所有路线通过
:照片
p

resources :p, :controller => "photos" 

为了更简洁,避免出现
p\u id
的问题,您可以这样做:

resources :photos, path: 'p'

通过这种方式,您可以从终端的可读性中获益(它将生成帮助程序,如
编辑照片路径
,在嵌套路由等情况下,您将以
照片id
的形式访问变量),并生成您想要的命名URL。

为了更简洁,避免
照片id
的问题,您可以这样做:

resources :photos, path: 'p'
通过这种方式,您可以从终端的可读性中获益(它将生成像
edit\u photo\u path
这样的帮助程序,在嵌套路由等情况下,您将访问变量作为
photo\u id
),并生成您想要的命名URL