在我的Rails应用中,每个帖子都有一个评论部分,用户可以在其中发表评论。我希望每个评论都有一个删除链接,但我无法让它工作。我在这里使用acts_as_commentable gem。
文章/ show.html.erb
<% @comments.each do |comment| %>
<p><strong><%= comment.user.username %></strong></p>
<p class="comment"><%= comment.comment %><p>
<%= link_to "Delete", [@post, comment], method: :delete %>
<% end %>
我需要这条线的帮助
<%= link_to("Delete", [@post, comment], method: :delete %>
comments_controller.rb
def create
@post = Post.find(params[:post_id])
@comment = @post.comments.create(comment_params)
@comment.user_id = current_user.id
end
def destroy
@comment = Comment.find(params[:id])
redirect_to :back
end
感谢您的帮助! :)
答案 0 :(得分:1)
您在destroy
操作中根本没有销毁它,您需要添加@comment.destroy
来删除数据库中的注释
def destroy
@comment = Comment.find(params[:id]
@comment.destroy # add this line
redirect_to :back
end
希望有所帮助!
答案 1 :(得分:0)
更改类似的破坏行为:
def destroy
@post = Post.find(params[:post_id])
@comment = @post.comments.find(params[:id])
@comment.destroy
redirect_to :back
end
通过这种方式,您可以确保删除与特定帖子相关的评论。它的轨道提供了你可以看到的方式here。