gpt4 book ai didi

ruby-on-rails - rails 4 : Force method: :post

转载 作者:行者123 更新时间:2023-12-03 23:30:40 26 4
gpt4 key购买 nike

我目前正在将 Rails 3.2 应用程序更新到 Rails 4,但遇到了 Rails 问题,现在使用 PATCH 作为更新的主要 HTTP 动词。我有一个用户可以用来创建订单的表单。这种形式使用模型“temporders”。用户发送表单后,他将被重定向到/orders/new,在那里他可以查看和确认第一个表单。 Orders#new 使用“@order = Temporder.find session[:temporder]”来获取确认表单的数据。该表单应作为 POST 请求发送到“/orders”。 “订单”被声明为一个安静的资源。

orders_path          GET     /orders(.:format)           orders#index
POST /orders(.:format) orders#create
new_order_path GET /orders/new(.:format) orders#new
edit_order_path GET /orders/:id/edit(.:format) orders#edit
order_path GET /orders/:id(.:format) orders#show
PATCH /orders/:id(.:format) orders#update
PUT /orders/:id(.:format) orders#update
DELETE /orders/:id(.:format) orders#destroy

<%= form_for @order, :as => :order, :url => orders_path, :html => {:multipart => true} do |f| -%>

但是,当我发送表单时 Rails 生成错误“没有路由匹配 [PATCH]“/订单””我尝试添加“方法::post”,但没有帮助。我怀疑 Rails 4 假定这是现有订单对象的更新表单,因为我从现有的“临时订单”对象获取数据,因此使用 PATCH 而不是 POST。问题是:如何强制此表单的 POST 方法?

最佳答案

我发现了问题。我在错误/过时的手册中查找设置 HTTP 方法的语法。它应该是 <%= form_for @order, :as => :order, :url => orders_path, :html => {:multipart => true, :method => :post} do |f| -%>

关于ruby-on-rails - rails 4 : Force method: :post,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18941805/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com