仅允许创建帖子的用户使用Devise编辑,更新或删除帖子

时间:2015-08-21 13:16:12

标签: ruby ruby-on-rails-4 devise

目前,我已将按钮隐藏到未创建的帖子上的用户。如何阻止他们更新,修改或删除posts_controller中的帖子?我尝试在编辑,更新和删除方法周围使用if @post.user == current_user但只返回堆栈跟踪:

Missing template posts/update, application/update with {:locale=>[:en], :formats=>[:html], :variants=>[], :handlers=>[:erb, :builder, :raw, :ruby, :coffee, :jbuilder]}. Searched in: * "/Users/user1/workspace/webapp/app/views" * "/Users/user1/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/devise-3.5.2/app/views"

如何让试图编辑帖子的用户以及如果他不是所有者阻止他编辑,更新或删除?

1 个答案:

答案 0 :(得分:1)

您必须拥有未经授权访问的模板,或者您可以重定向到网址if @post.user == current_user。如下所示

 if @post.user == current_user
    flash.now[:error] = 'unauthorized access!'
    redirect_to posts_path
 end