ruby-on-rails - 重定向 PATCH 和 PUT 路由轨道 5 以使用 POST
问题描述
我目前正在将正确的路由添加到旧版 Rails 应用程序中,我似乎无法使用 PATCH、PUT 和 DELETE 路由,因为该应用程序目前的工作方式仅基于 GET 和 POST 路由。
所以我已经实现了 REST 路由,但目前,我需要重定向 PATCH、PUT 和 DELETE,直到我们可以更改它以使用正确的路由。
这是我在更新时得到的:
这些是自定义字段的路由# custom_fields
resources :custom_fields, except: %i[show destroy] do
get :disable, on: :member
collection do
get :list
get :edit
get :disable
get :enable
get :order_fields
post :process_order_fields
end
end
# remap wrong implmentation of paths
get '/custom_fields/edit/:id', to: redirect('/custom_fields/%{id}/edit')
我试过以下
post '/custom_fields/:id', to: redirect(custom_field_path(id: %{id}))
但没有骰子。
解决方案
我不明白你的问题。为什么您“需要”添加这些重定向?
如果您希望定义一个POST
像 的遗留路由post '/custom_fields/:id'
,但在内部让它执行与非遗留PUT/PATCH
请求相同的操作,那么只需将其定义为:
resources :custom_fields, except: %i[show destroy] do
post :update, on: :member
# ...
end
此外,根据 HTTP 规范,将其定义为您尝试的重定向是无效的:
如果收到 302 状态码以响应 GET 或 HEAD 以外的请求,除非用户可以确认,否则用户代理不得自动重定向请求,因为这可能会改变发出请求的条件。
推荐阅读
- cognos-10 - 如何使用查询计算创建图表报告并动态显示超过 12 个月的日期
- python - 未找到 Django Url 模式
- c# - 如何使用 HttpWebRequest 在 Dynamics 365 中发布数据
- wordpress - 如何让 wordpress 为我的 react 应用程序提供服务?
- r - 将 geom_hline 添加到图例
- php - 按计数分组不工作 Mysql Php
- java - 如何使用 Android Java 在 EPSON Receipt Printer 上打印缅甸 Unicode 字体?
- amazon-cognito - 如果禁用自动预热,如何使用 ses 专用 ip?
- python - 如何根据python中的用户输入在函数中逐一传递动态列表值?
- react-native - TypeError:未定义不是对象(评估“VisibleComponent.props”)