2010-12-12 31 views
20

我有以下的link_to在我的應用中刪除URL的link_to刪除網址無法正常運作

<%=link_to "Delete",blog_path(@blog.id), :method => :delete, :class => "delete", :confirm => "Are you sure ?"%> 

這似乎並沒有被working.When我點擊這個鏈接,它只是需要我的演出path.Can有人請告訴我如何解決這個問題。謝謝。

+0

什麼是您的路線(routes.rb)爲博客? – aceofspades 2010-12-12 18:54:05

+0

嘗試鍵入'耙路線'並顯示輸出... – wizztjh 2010-12-20 05:26:12

回答

5

確保您已打開java腳本。否則:method => :delete的行爲就像在Rails中展示的一樣。

+0

感謝您的答案.yes已打開javascript。 – felix 2010-12-12 18:51:09

+1

然後你應該確認你已經加載了rails.js,並且在頁面上沒有javascript錯誤。 – iain 2010-12-12 19:39:37

+2

@Felix:如果你沒有看到「你確定嗎?」當你點擊這個鏈接,那麼與JS的東西是錯誤的。 – klew 2010-12-12 19:53:37

4

如果您使用路由寧靜的博客,那麼下面應該工作:

<%= link_to "Delete", @blog, :method => :delete, :confirm => "Are you sure ?"%> 
19

你使用jQuery?如果是這樣,我認爲這個問題可能是因爲你正在使用沒有更新rails.js文件的jQuery。

在這裏下載rails.js: https://github.com/rails/jquery-ujs/raw/master/src/rails.js 把它放在你的javascripts目錄下,覆蓋rails的默認配置。

添加javascript include行以包含它。

<%= javascript_include_tag "rails" %> 

把這個放在你的jquery include標籤後面。如果您不打算使用原型,您可能還想要排除JavaScript默認值。

我在我的應用程序中包含了jQuery UI,我發現刪除現在可以像show一樣工作,但在執行上述解決問題之後。

+0

謝謝你的回答肖恩。這是一個JavaScript錯誤。 – felix 2010-12-20 08:13:37

+0

@felix嘿,如果你認爲這個答案是搖滾,認爲你可以把它與一個公認的答案掛鉤? =)thxxxx – 2015-01-06 15:36:36

4

您可以嘗試'data-method'而不是:method。

<%=link_to "Delete",blog_path(@blog.id), 'data-method' => :delete, :class => "delete", :confirm => "Are you sure ?"%> 

您可以在jquery_ujs.js檢查下面的一段代碼:

// Handles "data-method" on links such as: 
// <a href="https://stackoverflow.com/users/5" data-method="delete" rel="nofollow" data-confirm="Are you sure?">Delete</a> 
+0

這一個爲我工作:) – 2013-09-05 06:02:22

16

確保這些線路出現在application.js

//= require jquery 
//= require jquery_ujs 
0

你應該使用

<%=button_to "Delete",blog_path(@blog.id), :method => :delete, :class => "delete", :confirm => "Are you sure ?"%> 
2

爲了link_to要使用delete方法,Rails需要unobtrusive scripting adapter for jQuery

  • 確保您的Gemfile

    gem 'jquery-rails'

  • 確保應用程序/資產/ Java腳本/ 的application.js

    //= require jquery
    //= require jquery_ujs

  • 確保您的應用/ views/layouts/application.html。ERB

    <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %>
    <%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>

    head標籤內。如果您不打算使用Turbolinks,請刪除'data-turbolinks-track' => true部分。