Ruby删除方法不起作用

时间:2016-07-20 09:43:09

标签: ruby-on-rails ruby blogs delete-method

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

我已经尝试过不同的方法来定义链接,但这一切都没有帮助。现在,我的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

3 个答案:

答案 0 :(得分:0)

尝试此查询链接:

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

我认为问题只在于post_path(@post)。希望这有效。

答案 1 :(得分:0)

如果路由资源丰富并且数据库中发生了删除,则问题可能是redirect_to路由不是复数。

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

修正:

def destroy
  @post.destroy
  redirect_to posts_path
end

答案 2 :(得分:0)

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

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