2010-12-17 5 views
2

RailsビューでJqueryが使用されています。ここでのサンプルコード:HTML要素のidをユニークにして、ajax応答の正しい要素に何かが追加されるようにする方法

<div id="comments" class="comments"> 
    <%= render :partial => 'comment', :collection => @comments %> 
</div> 

<script type="text/javascript"> 
$(function() { 
    $('#new_comment').bind('ajax:success', function(event, data, status, xhr) { 
    $('#comments').append('<div class="comment-item">' + data.text + '</div>'); 
    }); 
}); 
</script> 

私はAJAXリクエストを送信し、応答にJavaScript関数が呼び出されたフォームを持っています。私はこのパターンとそのダイナミクスを持つページに複数の場所を持っています。正しいIDで応答を追加するには、divのIDを一意にする必要があります。それ、どうやったら出来るの?

<div class="posts" id="post_42"> 
    <!-- stuff --> 
</div> 

<%= content_tag_for :div, @post do %> 
    <!-- stuff --> 
<% end %> 

のようなものになります:

答えて

1

Railsでは、あなたは同じであるクラスに

<%= div_for @post do %> 
    <!-- stuff --> 
<% end %> 

取得するcontent_tag_forまたはdiv_forヘルパーを使用することができますHAMLでは、角括弧を使って同じものを得ることができます:

%div[@post] 
/stuff 
+0

クラスとID文字列を単独で使用する場合は、これらの関数を "dom_id"と "dom_class"と呼ぶことをおすすめします。 – icecream