Rails 4不使用形式方法补丁,默认要发布



i具有以下行,该行生成表单标签;

<%= form_for :stream, url: stream_path(@stream), method: :patch do |f| %>  

它生成以下;

<form method="post" action="/streams/52b02d267e3be39d3da5aa609f1049d7" accept-charset="UTF-8">

如果我将其更改为 :put,它仍然有帖子,但是如果我编写 method: :get,它将将其更改为 get

有人知道为什么它会这样做,以及我能做什么来防止它?

这是耙路的输出;

    Prefix Verb   URI Pattern                 Controller#Action
    streams GET   /streams(.:format)          streams#index
           POST   /streams(.:format)          streams#create
 new_stream GET   /streams/new(.:format)      streams#new
edit_stream GET   /streams/:id/edit(.:format) streams#edit
     stream GET   /streams/:id(.:format)      streams#show
          PATCH   /streams/:id(.:format)      streams#update
            PUT   /streams/:id(.:format)      streams#update
         DELETE   /streams/:id(.:format)      streams#destroy

背景是这是一个简单的编辑表格,我要它做的就是他的控制器的更新方法。

跟进

在我的布局文件中,我带来了CSRF_META_TAGS和我的javascript_include_tag链接到一个名为"流"的文件,该文件具有以下

//= require jquery
//= require jquery_ujs
method: (:get|:post|:patch|:put|:delete)

来自文档:

"选项哈希。"

来源:http://api.rubyonrails.org/classes/actionview/helpers/formhelper.html

您的应用程序中的 //= require jquery_ujs是吗?

也确保

<%= javascript_include_tag "application"%>
<%= csrf_meta_tag %>

存在于您的布局文件中。

最新更新