如何在嵌套路径中删除 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=你
我的代码有些问题。你能帮帮我吗?
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?' }
如果我猜对了,这应该可以解决你的问题