Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/61.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.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 具有自定义url的表单不断提交到创建方法_Ruby On Rails_Ruby_Forms_Routes_Rails Routing - Fatal编程技术网

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'}