如何在嵌套路径中删除 post

how to Delete post at the nested path

我的代码有些问题。你能帮帮我吗?

views/topics/show.html.slim

- if current_user == post.user
  = link_to 'Удалить комментарий',forum_topic_post_path(@forum, @topics, @posts, @post),
        method: :delete,
        data: { confirm: 'Are you sure?' }

controllers/post_controller.rb

def destroy
    @forum = Forum.find params[:forum_id]
    @topic = Topic.find params[:topic_id]
    @post.user = current_user
    @post = Post.find(params[:id]).destroy
end

错误:

ActiveRecord::RecordNotFound 在 PostsController#destroy

找不到 Post 'id'=#

@post = Post.find(params[:id]).destroy

你的代码有两个错误。

1) 尝试在您的 link_to 中将 @post 对象更改为 post,如下所示。

也不确定您的@topics 对象,它应该包含一条记录。

- if current_user == post.user
  = link_to 'Удалить комментарий',forum_topic_post_path(@forum, @topics, post),
    method: :delete,
    data: { confirm: 'Are you sure?' }

2) 在您的控制器中尝试更改销毁操作,如下所示:

def destroy
  @forum = Forum.find params[:forum_id]
  @topic = Topic.find params[:topic_id]
  @post = current_user.posts.find(params[:id]).destroy
end

考虑到您在用户和帖子中有 has_many 关系。

我想你在找post_path如果我错了请指正

= link_to 'Удалить комментарий', post_path(post,:forum_id =>@forum.id, :topic_id =>@topic.id),
    method: :delete,
    data: { confirm: 'Are you sure?' }

= link_to 'Удалить комментарий', forum_topic_post_path(@forum, @topics, post),
    method: :delete,
    data: { confirm: 'Are you sure?' }

如果我猜对了,这应该可以解决你的问题

u=15=u试试这个 vai:u=12=u 你=10=你 u=15=u=18=u控制器=19=u=12=u 你=11=你 你=15=你