轨确认删除之前

问题描述:

这里的link_to轨确认删除之前

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

我试过上面的方法我的轨道,但它是在没有任何警告信息,直接删除。我做了什么错。任何人都可以纠正它。

+0

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

+1

@Debadatt包括 – overflow

查看以下链接:

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

试试这个

<%= 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. 我认为你应该使用:方法选项

    <%= 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

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

的请确保您有jQuery库和jQuery的驱动程序包括滑轨两者。据我所知,这个jquery-rails gem将在Rails的后续版本中处理这两个问题。

此外,为了更好地兼容未来版本的jQuery驱动程序,请将:confirm选项移到:data之外,并让jquery-rails gem决定如何处理它。钢轨4.1.8

回答(问题不包括版本)

和标准的资源(也未指定)

  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之后添加,它现在可以像魅力一样工作 –