我正在创建一个应用程序,允许用户对创建的项目帖子发表评论。我遵循这个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
试试这个…
<%= link_to "Destroy", [@commentable, comment], method: :delete, data: { confirm: 'Are you sure?' } %>