2013-10-25 129 views
29

這裏的link_to軌確認刪除之前

<%= link_to 'Delete',url_for(action: :delete,id: @user.id),data: {confirm: "Are you sure?"} %> 

我試過上面的方法我的軌道,但它是在沒有任何警告信息,直接刪除。我做了什麼錯。任何人都可以糾正它。

+0

是jquery.js包含在您的應用程序中? – Debadatt

+1

@Debadatt包括 – overflow

回答

0

查看以下鏈接:

<%= link_to 'Delete',url_for(action: :delete,id: @user.id), confirm: "Are you sure?" %> 
45

試試這個

<%= link_to 'Delete',url_for(action: :delete,id: @user.id),method: :delete, data: {confirm: "Are you sure?"} %> 
+1

值得一提的是,'data'散列是所提供的解決方案中的唯一選項,最終爲我工作。 Rails 4.1.2,Ruby 2.1.2p95,jquery-rails 3.1.1。也就是說,在其他應用程序中,我使用'data'散列之外的'confirm'選項作爲link_to的參數,並且它已完全工作。是什麼賦予了? –

+1

這讓我在Rails 4中難住了一段時間。1,如果沒有在數據散列中加入確認,那麼該屬性會呈現爲「確認」,而不是「數據確認」 –

+0

他們是否將此更改爲Rails 4中的數據確認? –

1
  1. 我認爲你應該使用:方法選項

    <%= link_to 'Delete',url_for(action: :delete,id: @user.id), method: :delete, confirm: "Are you sure?" %>

  2. 這是可能是更好的使用按鈕(和形式)對這樣的動作

+1

試過但沒有工作,當我檢查我可以看到'data-confirm =「你確定嗎?」和'data-method =「delete」' – overflow

+0

在JS控制檯中是否有任何錯誤? –

+0

控制檯中也沒有錯誤 – overflow

1
link_to('Delete', {controller: :controller_name, id: id, action: :action_name}, confirm: "Are you sure you want to delete this?", method: :delete) 
0

的請確保您有jQuery庫和jQuery的驅動程序包括滑軌兩者。據我所知,這個jquery-rails gem將在Rails的後續版本中處理這兩個問題。

此外,爲了更好地兼容未來版本的jQuery驅動程序,請將:confirm選項移到:data之外,並讓jquery-rails gem決定如何處理它。鋼軌4.1.8

10

回答(問題不包括版本)

和標準的資源(也未指定)

  1. //= jquery_ujs必須包含在application.js中(可能丟失)
  2. 網址爲user_path(@user)
  3. 內指定:method => :delete(缺失)
  4. 確認消息210(良好)
  5. 在控制器破壞方法(未刪除)

=的link_to噸(:刪除),user_path(@user):方法=>:刪除,:類= > 「BTN BTN-危險」:數據=> {:確認=> T(:are_you_sure)}

在相關網址似乎創建GET,而不是一個DELETE方法。如果指定了方法,這可能工作。恕我直言,這是不幸的,沒有單獨的網址幫手。

+0

// = jquery_ujs在// = jquery之後添加,它現在可以像魅力一樣工作 –