0

次のコードを含むjs.erbファイルがありますが、link_toヘルパーメソッドのjavascriptを適切にエスケープできないようです。Editの周りの引用符と関係があると思います。

$('#microposts').prepend('<div class="micropost"><h3>' +  "<%= j @user.email %>" + '</h3>    <h3>Posted ' + "<%= j time_ago_in_words(@micropost.created_at) %>" + ' ago</h3><p>' +  "<%= j     @micropost.content %>" + '</p><p>' + "<%= j link_to "Edit",      edit_user_micropost_path(@micropost) %>" '</p></div>');
$('#new_micropost')[0].reset();
$('#micropost_count').html('<%= Micropost.count %>');

ちなみに、これをどのようにアニメートしますか?

4

1 に答える 1

3

これがあなたが探している答えではない可能性がありますが、これは正しいアプローチではなく、これを適切に回避することの難しさは、アプローチが複雑すぎることの兆候にすぎないことを謙虚に提案します。

ここで行っていることは実際には当然のことかもしれませんが(一部のRails開発者によると)、これは非効率的で、さらに悪いことに、複雑すぎる(したがって保守が難しい)と思います。おそらく、いくつかのAJAX呼び出しが行われ、JavaScriptで実装された命令(この場合はDOMを変更するコマンド)を含むこの動的に生成された応答を受信しました。ページが最初に読み込まれるときに、データの小さなスニペットを取得して適切にレンダリングする方法を知っているJavaScriptの静的チャンクを1つ読み込んでみませんか?

次に行うことは、スクリプトの命令型チャンクの代わりにJSONを返すことです。静的JavaScriptメソッドは、次の方法でDOMを変更します。

  1. そのページに埋め込まれている、保守が容易なHTMLの非表示のスニペットをコピーします。
  2. コピーで検索/置換を実行して、AJAX呼び出しから取得したJSON構造からのデータで「空白を埋める」。
  3. コレクションの前にHTMLの新しいスニペットを追加します。

これは、メンテナンスがはるかに簡単で、より簡単になると思います。

于 2012-05-18T21:56:22.597 に答える