多态关联 - 删除评论

时间:2013-04-25 01:39:31

标签: ruby-on-rails comments polymorphic-associations

我正在创建一个应用程序,允许用户对创建的项目发布进行评论。我按照Railscast来设置多态关联。

每个教程都能很好地运行,但我一直在尝试在注释控制器中构建一个删除方法,以便删除注释。我在我的注释控制器中创建了一个名为destroy的方法。

对我的项目发布做出评论。评论的部分内容在项目页面和发布帖子的用户页面上生成。当我在项目页面上删除它时效果很好,但是当我尝试从用户页面删除时,我得到下面的结果。如何修复它,以便用户可以删除评论,无论是从项目页面还是从他们自己的用户页面删除?

Unknown action
The action 'show' could not be found for CommentsController

comments_controller.rb

  def destroy
    @comment = Comment.find(params[:id])
    @comment.destroy

    if @comment.destroy
      redirect_to @commentable, notice: "Comment deleted."
    end
  end

_comment.html.erb

<div class="comments">        
  <p><%= comment.content %></p>
  <span>
    By <%= link_to comment.user.name, comment.user %> <%= time_ago_in_words(comment.created_at) %> ago

    <div class="pull-right">
<%= link_to "Destroy", [@commentable, comment], method: :delete, data: { confirm: 'Are you sure?' } %>
</div>
  </span>
</div>

的routes.rb

resources :comments

resources :projects do
  resources :comments
  member do
    get :following
  end   
end

1 个答案:

答案 0 :(得分:3)

试试这个......

<%= link_to "Destroy", [@commentable, comment], method: :delete, data: { confirm: 'Are you sure?' } %>