【发布时间】:2016-11-30 04:48:28
【问题描述】:
假设我有帖子和评论,显示的网址是/posts/1/comments/1。我想创建一个链接以删除 cmets 控制器销毁方法中的该注释。我该怎么做?
【问题讨论】:
标签: ruby-on-rails ruby hyperlink
假设我有帖子和评论,显示的网址是/posts/1/comments/1。我想创建一个链接以删除 cmets 控制器销毁方法中的该注释。我该怎么做?
【问题讨论】:
标签: ruby-on-rails ruby hyperlink
<%= link_to 'Destroy', post_comment_path(@post, comment),
data: {:confirm => 'Are you sure?'}, :method => :delete %>
在 cmets 控制器中:
def destroy
@post = Post.find(params[:post_id])
@comment = Comment.find(params[:id])
@comment.destroy
respond_to do |format|
format.html { redirect_to post_comments_path(@post) }
format.xml { head :ok }
end
end
【讨论】:
javascript_include_tag :all 在 Rails > 3.1 中被弃用,应用程序布局默认使用 = javascript_include_tag "application",这将完成同样的事情
从前一段时间,confirm 选项必须包含在 data 哈希中,否则将被默默忽略:
<%= link_to 'Destroy', post_comment_path(@post, comment),
data: { confirm: 'Are you sure?' }, method: :delete %>
【讨论】:
有时当您在<a> 标记内有<span>、<i> 或嵌套元素时,使用这种方式link_to 很困难。您可以插入使用易于处理的原始 HTML,如下所示:
<a class="btn btn-sm" href="/blogs/<%=@blog.id%>" data-method="delete">
<i class="pg-trash"></i><span class="bold">Delete</span>
</a>
【讨论】: