我一直在尝试删除我创建的评论作为可评论的宝石。
我的代码:
<%= link_to "×", comment_delete_place_path(comment.id), :method => :delete, :remote => true, :confirm => "Are you sure you want to remove this comment?", :disable_with => "×", :class => 'close' %>
控制器:
def comment_destroy
if params[:comment]
@comment = Comment.find(params[:id])
if @comment.destroy
respond_to do |format|
format.html { redirect_to @place, notice: 'The comment was successfully deleted!'}
format.js
end
end
end
end
路线:
delete 'places/comment/:id' => 'places#comment_destroy', as: 'comment_delete_place'
它没有给我任何错误,但它没有删除评论。我哪里错了?
答案 0 :(得分:1)
最好使用button_to,这会使rails生成一个表单来产生相同的结果。
从实际的角度来看,按钮更好(出于上述原因)但从概念的角度来看它们也更好:一般来说,链接应该“带你去某个地方”,而按钮应该“做点什么”。保持这两个基本功能是分开的。
尝试使用button_to(您需要检查api中的语法)。如果它仍然不起作用,请检查表单中的网址,并将其与rake routes | grep comment
答案 1 :(得分:1)
在您的远程请求中,没有comment
参数(仅提供id
参数),因此以下行始终为false
,您可以删除它:
if params[:comment]