Ruby 删除方法无效

Ruby delete method does not work

对于我的博客,删除方法 不起作用(编辑、更新、创建...都可以)。

我已经尝试了不同的方法来定义 link,但都没有用。现在,我的 html.erb 代码如下所示:

<div class="btn">
<%= link_to "Delete", post_path(@post), :confirm => "Are you sure?", :method => :delete %>
</div>

控制器是这样的:

def destroy
    @post.destroy
    redirect_to post_path
end

佣金路线:

                    posts GET    /posts(.:format)                    posts#index
                          POST   /posts(.:format)                    posts#create
                 new_post GET    /posts/new(.:format)                posts#new
                edit_post GET    /posts/:id/edit(.:format)           posts#edit
                     post GET    /posts/:id(.:format)                posts#show
                          PATCH  /posts/:id(.:format)                posts#update
                          PUT    /posts/:id(.:format)                posts#update
                          DELETE /posts/:id(.:format)                posts#destroy

为 link 尝试此查询:

<div class="btn">
<%= link_to "Delete", @post, :confirm => "Are you sure?", :method => :delete %>
</div>

我觉得问题出在post_path(@post)。希望这有效。

如果路由足智多谋并且删除发生在数据库中,问题可能是 redirect_to 路由不是复数。

参见:http://guides.rubyonrails.org/routing.html#path-and-url-helpers

更正:

def destroy
  @post.destroy
  redirect_to posts_path
end

请尝试添加一种机制来查找 @post,因为 http 是无状态的 @post 需要分配。 @post = Post.find(params[:id])部分已添加,供您试用。谢谢。

def destroy
  @post = Post.find(params[:id])
  @post.destroy
  redirect_to posts_path
end