:使用Rails 3和jQuery UJS时,Rails中的确认选项被忽略

我在Rails应用程序中有一个项目表,每个都有一个删除链接,如下所示:

"Are you sure?", :method => :delete %>

但是,即使用户单击对话框上的“取消”,也会发送删除请求。

有想法该怎么解决这个吗? 我正在使用Rails 3,Beta 3,jQuery库和附带的jQuery UJS库。

您需要获得更新版本的rails.js。 我使用相同的设置遇到了同样的问题。 当我对旧版本和新版本进行区分时,我发现旧版本中的确认处理程序已被注释掉。 新版本解决了这个问题。

如果您使用的是jQuery并将其放在p ublic / javascripts文件夹中,请从( http://github.com/rails/jquery-ujs/blob/master/src/rails.js )下载rails.js

然后确保模板标题上有以下内容

 <%= javascript_include_tag "http://ajax.googleapis.com/ajax/libs/jquery/1.4.1/jquery.min.js" %> <%= javascript_include_tag 'rails' %> <%= csrf_meta_tag %> 

就是这样=)

我认为你在表行中使用链接。 您可能会在表格行中使用onclickfunction,因此当您在删除链接上确认弹出窗口时出现,当您单击取消时,您的onclickfunction将被执行。

这是一个假设,但它可能对您有所帮助。 如果没有,请使用相关代码编辑您的问题。

您将不得不发布有关您的rails和更多代码的更多信息。 由于link_to:confirm选项一起正常工作。

我可以建议两件事,

  1. 尝试link_to "Delete", project, { :confirm => "Are you sure?", :method => :delete } (早期版本的rails没有处理没有{}选项。
  2. 查看为该片段生成的html并查看它是否具有javascript,如果没有,请尝试在代码的另一部分中放置一个带有确认的普通旧link_to并检查。