Я работаю над демо-приложением Rails 3.1 Jquery Ajax, перечисленным здесь https://github.com/samnang/ajax_rails31_demo . Я пытаюсь добавить код для удаления комментариев. Я изменил comments_controller.rb и добавил действие уничтожения. Я также добавил ссылку на app/views/_comment.html.erb, чтобы включить ссылку «Уничтожить». Я могу удалить комментарий, и количество комментариев уменьшается на 1, но частичный комментарий не обновляется, удаляя запись. Только при обновлении страницы страница отображается правильно. Вот мой код
приложение/контроллеры/comments_controller.rb
class CommentsController < ApplicationController
respond_to :html, :js
def index
@comments = Comment.all
end
def create
@comment = Comment.new(params[:comment])
@comment.save
respond_with @comment, :location => comments_url
end
def destroy
@comment = Comment.find(params[:id])
@comment.destroy
respond_with @comment, :location => comments_url
end
end
приложение/просмотры/комментарии/index.html.erb
<% title "Comments for Ajax in Rails 3.1" %>
<div id="comments_count"><%= comments_count %></div>
<div id="comments">
<%= render @comments %>
</div>
<h3>Add your comment:</h3>
<%= form_for Comment.new, :remote => true do |f| %>
<%= f.error_messages %>
<p>
<%= f.label :name %><br />
<%= f.text_field :name %>
</p>
<p>
<%= f.label :content, "Comment" %><br />
<%= f.text_area :content, :rows => '12', :cols => 35 %>
</p>
<p><%= f.submit %></p>
<% end %>
приложение/представления/комментарии/_comment.html.erb
<div class="comment">
<strong><%= comment.name %></strong>
<em><%= comment.created_at.strftime('%b %d, %Y at %I:%M %p') %></em>
<%= simple_format comment.content %>
<%= link_to "Destroy", comment,:remote => true, :confirm => "You Sure", :method => :delete %>
</div>
приложение/виды/комментарии/create.js.coffee
$('<%= escape_javascript(render(:partial => @comment))%>')
.appendTo('#comments')
.hide()
.fadeIn()
$('#new_comment')[0].reset()
$('#comments_count').html '<%= comments_count %>'
приложение/просмотры/комментарии/destroy.js.coffee
$('#new_comment')[0].reset()
$('#comments_count').html '<%= comments_count %>'
Я считаю, что я ошибаюсь в части уничтожения jquery. Как перезагрузить партиал, чтобы удалить удаленный комментарий?