Ruby on rails 具有自定义url的表单不断提交到创建方法
我试图构建一个简单的表单,将几个参数传递给控制器 以下是我所拥有的:Ruby on rails 具有自定义url的表单不断提交到创建方法,ruby-on-rails,ruby,forms,routes,rails-routing,Ruby On Rails,Ruby,Forms,Routes,Rails Routing,我试图构建一个简单的表单,将几个参数传递给控制器 以下是我所拥有的: <%= form_tag({url: order_pizza_path}, method: :post) do %> <%= hidden_field_tag :id, value: 0, name:"tag-1" %> <!-- hidden field is then filled in with js --> <%= submit_tag "Submit" %>
<%= form_tag({url: order_pizza_path}, method: :post) do %>
<%= hidden_field_tag :id, value: 0, name:"tag-1" %>
<!-- hidden field is then filled in with js -->
<%= submit_tag "Submit" %>
<% end %>
<!-- routes: -->
get 'pizza/new' => 'pizza#new', as: 'new_pizza'
post 'pizza' => 'pizza#create', as: 'create_pizza'
post 'order_pizza' => 'pizza#order', as: 'order_pizza'
表单的url是/pizza
。这是错误的url:/pizza?method=get&url=%2Forder\u pizza
即使我将其更改为GET请求而不是POST,也会发生这种情况。为什么我的浏览器一直试图转到
Create
方法?正确的语法是
form_tag(order_pizza_path, method: :post)
不是
{url:order\u pizza\u path}
不是有效的url\u选项
,因此表单标签
将提交到默认值,即创建
操作
选项的url\u的有效值为
{action: 'order'}
奇怪的是,我可以发誓我以前成功地使用了我的语法。谢谢你知道为什么浏览器默认创建而不是抛出一个错误吗?
form_tag({url: order_pizza_path}, method: :post)
{action: 'order'}