Rails: 如何定义自定义路由并移除默认路由

20 浏览
0 Comments

Rails: 如何定义自定义路由并移除默认路由

我想要一个图像控制器,并允许使用单一的端点,如:\n/images/upload\n但禁用所有其他默认的端点。\n

resources :images, only: [] do
 collection do
  post "upload"
 end
end

\n这是我目前的方法,它可以实现需求,但是否正确呢?\n是否有某种:none关键字可以禁用默认路由?\n或者我应该不使用resources,用其他方式来实现?

0
0 Comments

Rails:如何定义自定义路由但删除默认路由

在这个问题中,用户想要知道如何定义自定义路由但删除默认路由。用户提到了上传图像可以理解为创建图像,因此他建议使用create方法代替upload方法。他提到他正在尝试遵循stackoverflow.com/a/42784598/12238373中的建议。他解释说他不是在创建一个图像对象,而是只是将图像上传到Cloudinary,并将URL返回给客户端。用户询问是否适合删除上传方法并将此代码分配给create方法。对此,有人回答说,在Rails中,处理HTTP POST请求的约定是使用控制器的create方法。基于这个回答,用户可以使用以下代码来定义自定义路由并删除默认路由:

resources :images, only: [:create]

以上是用户提问的原因和解决方法的整理。

0
0 Comments

问题的原因:

默认情况下,Rails会为每个资源自动生成一组标准路由。然而,在某些情况下,我们可能需要自定义路由并删除默认的路由。

解决方法:

为了定义自定义路由并删除默认路由,我们可以使用以下方法:

只需使用一个post路由:

post "/images/upload", to: "images#upload", as: :images_upload

0