簡體   English   中英

使用:method => link_to:通過GET而不是DELETE rails刪除路由4

[英]link_to with :method => :delete routing through GET not DELETE rails 4

我正在制作Ruby on Rails應用程序,遇到了一個問題,我認為這與我的應用程序中的Javascript無法正常工作有關。

我遇到的特定問題是link_to:

<%= link_to 'Sign out', destroy_user_session_path, :method => :delete %>

如您所見,這是相當標准的。

我在控制台中得到了這個:

Started GET "/user/sign_out" for ::1 at 2015-06-02

我認為這可能與bootstrap和我的application.js文件有關,但是我在網上找到的任何解決方案都沒有幫助。

這是我的application.js文件:

//= require bootstrap-sprockets
//= require jquery
//= require jquery_ujs
//= require turbolinks
//= require_tree .

在我的應用程序的早期,我在刪除同一應用程序中的“空格”實體時遇到了類似的問題,而其他類似的JS問題也是如此。

順便說一下,這是在Rails 4上

Rails入門Javascript驅動程序(UJS)-默認情況下, jquery-rails使用帶有data-method鏈接的攔截點擊並發送AJAX請求,該請求發送正確的HTTP方法,或者在客戶端不支持通過發送特定動詞時偽造該方法具有特殊_method參數的POST請求。

這是因為HTML僅支持鏈接的GET操作和表單的GET|POST

您最有可能遇到JavaScript問題,例如語法錯誤,這會阻止UJS驅動程序執行其工作。 在瀏覽器中打開控制台。

檢查空格。

我在這里檢查了所有評論。 所有包含項均已正確設置。 但是我注意到,刪除文章不起作用,而刪除評論則可以。 重寫一些代碼並在此處進行檢查后,我發現兩個文件在編輯器中看起來完全相同,但是一個版本可以工作,而一個版本不能工作!

咖喱博客/應用/視圖/用品/ index.html.erb:

<h1>Listing Articles</h1>
<%= link_to 'New article', new_article_path %>
<table>
  <tr>
    <th>Title</th>
    <th>Text</th>
    <th colspan="3"></th>
  </tr>
 
  <% @articles.each do |article| %>
    <tr>
      <td><%= article.title %></td>
      <td><%= article.text %></td>
      <td><%= link_to 'Show', article_path(article) %></td>
      <td><%= link_to 'Edit', edit_article_path(article) %></td>
      <td><%= link_to 'Delete', article_path(article),
              method: :delete,
              data: { confirm: 'Are you sure?' } %></td>        
    </tr>
  <% end %>
</table>

但是,通過xxdiff查看文件,我發現在一個版本中,僅使用制表符,而另一個版本中也使用空格。 可能是來自教程中的復制粘貼代碼。 因此,用制表符代替空白確實可以解決該問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM