1

源代码:

<td class="delete">
<%= link_to 'Destroy', 
  expense, 
  :confirm => 'Are you sure?', 
  :method => :delete, 
  :class => "btnDelete" %></td>

Rails 2 生成:

<td class="delete">
<a href="/expenses/18051" class="btnDelete" 
onclick="
  if (confirm('Are you sure?')) { 
    var f = document.createElement('form'); 
    f.style.display = 'none'; 
    this.parentNode.appendChild(f); 
    f.method = 'POST'; 
    f.action = this.href;
    var m = document.createElement('input'); 
    m.setAttribute('type', 'hidden'); 
    m.setAttribute('name', '_method'); 
    m.setAttribute('value', 'delete'); 
    f.appendChild(m);
    var s = document.createElement('input'); 
    s.setAttribute('type', 'hidden'); 
    s.setAttribute('name', 'authenticity_token'); 
    s.setAttribute('value','MTAoIigmzVSh39na4GRcpnOQXe1yMQkOYGnzCvZI0Xk='); 
    f.appendChild(s);
    f.submit(); 
  };
  return false;
">Destroy</a></td>

Rails 3 生成:

<td class="delete">
<a href="/expenses/17732" class="btnDelete" data-confirm="Are you sure?"     
data-method="delete" rel="nofollow">Destroy</a>
</td>

该页面的运行方式与使用生成 js 在 rails 2 上的方式不同,并且该应用程序不使用 jquery(还)。我提到 jquery 是因为谷歌搜索 data-confirm 和 data-method 属性会得到命中,这意味着他们需要 jquery 才能做任何事情。

是否有一些参考文档可以处理 data-confirm 和 data-method 属性的功能要求和/或 rails 3 期望哪些可以使链接到帮助程序生成的代码按预期工作?

4

2 回答 2

0

自从我创建了一个新的 rails 3.0 应用程序以来已经有一段时间了。看看我的一个,我认为您需要包含创建应用程序时生成的 rails.js 文件,它应该会为您处理好事情。

<%= javascript_include_tag "rails" %>
于 2013-02-12T14:35:16.733 回答
0

部分答案:启用资产管道和编码

<%= javascript_include_tag "application" %>

在视图中,rails 使用其(rail 的)jquery 库副本为页面提供服务,从而启用链接上的确认消息框。有了这种程度的理解,我希望看到的是 1)关于资产管道上 link_to 助手的 :confirm 参数之间依赖关系的文档和 2)即使资产管道被禁用也允许确认的解决方法。

于 2013-02-12T19:16:42.027 回答