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 を (まだ) 使用していません。data-confirm 属性と data-method 属性をグーグル検索すると、何かを行うには jquery が必要であることを意味するヒットが表示されるため、jquery について言及します。

data-confirm 属性と data-method 属性が機能するための要件、および/または link-to ヘルパーによって生成されたコードが期待どおりに機能することを可能にする Rails 3 が期待するものを扱うリファレンス ドキュメントはありますか?

4

2 に答える 2

0

部分的な回答: アセット パイプラインとコーディングを有効にする

<%= javascript_include_tag "application" %>

ビュー内で Rails がその (Rail の) jquery ライブラリのコピーを使用してページを提供し、リンクの確認メッセージ ボックスを有効にします。このレベルの理解で、私が見たかったのは、1) アセット パイプラインの link_to ヘルパーの :confirm パラメータ間の依存関係に関するドキュメント、および 2) アセット パイプラインが無効になっている場合でも確認できるようにするための回避策です。

于 2013-02-12T19:16:42.027 に答える
0

新しいRails 3.0アプリを作成してからしばらく経ちました。私が持っているものを見ると、アプリケーションの作成時に生成された rails.js ファイルを含める必要があると思います。

<%= javascript_include_tag "rails" %>
于 2013-02-12T14:35:16.733 に答える