У меня проблема с довольно простым вызовом AJAX в рельсах. У меня есть приложение в стиле блога, и в каждом сообщении есть функция «Мне нравится». Я хочу иметь возможность увеличивать "лайк" для каждого поста в индексе, используя AJAX onclick. Я получил это на работу; однако, DOM здесь немного сложнее, потому что независимо от того, на какую часть он смотрит, он будет обновлять только частичку TOP. поэтому, если я нажму «нравится» в сообщении № 2, он обновит и заменит «нравится» в сообщении № 1.
Код для _post частичный:
<some code here...>
<div id="postcontent">
Posted <%= post.created_at.strftime("%A, %b %d")%> <br />
</div>
<div id="postlikes">
<%= link_to_remote 'Like', :url => {:controller => 'posts', :action => 'like_post', :id => post.id}%>
<%= post.like %>
</div>
код для _postlikes частичный:
<div id="postlikes">
<%= link_to_remote 'Like', :url => {:controller => 'posts', :action => 'like_post', :id => @post.id}%>
<%= @post.like %>
</div>
</div>
like_post.rjs код:
page.replace_html "postlikes", :partial => "postlikes", :object => @post
page.visual_effect :highlight, "postlikes", :duration => 3
Так что все это работает правильно для первого "постконтентного" div. Но это индекс сообщений, поэтому, если я захочу обновить второй div «postcontent» на странице, он все равно заменит HTML первого.
Я понимаю проблему, я просто не знаю, как ее исправить:)
Заранее спасибо!