我有一个可评论的用户模型:
class User < ActiveRecord::Base
acts_as_commentable
在Users控制器中,我抓住这样的评论:
@comments = @user.comments.recent.page(params[:notifications]).per(10)
在用户展示视图中,有一部分呈现评论:
<% @comments.each do |comment| %>
<p><%= time_ago_in_words(comment.created_at) %> ago</p>
<h4><%= comment.comment %></h4>
<% end %>
我在部分中添加链接或按钮时遇到问题,以便用户删除(最好通过AJAX调用)个人评论。我知道这是基本的Rails,但我完全迷失了。
更多信息:
class Comment < ActiveRecord::Base
include ActsAsCommentable::Comment
belongs_to :commentable, :polymorphic => true
default_scope -> { order('created_at ASC') }
belongs_to :user
end
我真的很感激这个简洁而完整的答案。
我没有包含routes.rb,因为目前只在回调其他用户操作时创建了注释。因此,在routes.rb
中没有关于评论的信息答案 0 :(得分:0)
好像往常一样,解决方案很简单:
routes.rb中:
resources :comments, only: :destroy
UsersController:
def show
@comments = @user.comments.recent.page(params[:notifications]).per(10)
end
视图/用户/ _comments.html.erb:
<% @comments.each do |comment| %>
<span id="<%= comment.id %>">
<p><%= time_ago_in_words(comment.created_at) %> ago</p>
<h4>
<%= comment.comment %>
<%= link_to comment, method: :delete, remote: true %>
</h4>
</span>
<% end %>
CommentsController:
def destroy
@user = current_user
@comment = Comment.destroy(params[:id])
respond_to do |format|
format.html { redirect_to user_path(@user) }
format.xml { head :ok }
format.js
end
end
视图/评论/ destroy.js.erb:
$('#<%= @comment.id %>').remove();