Pundit :: AuthorizationNotPerformedError试图将微博改编为Devise / Pundit

时间:2016-02-24 14:11:17

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

我是Rails的新手,我第二次通过Michael Hartl的优秀Rails Tutorial工作,这次我试图改编第11章和第12章微博到一个简单的Devise / Pundit应用程序我正在研究。我可以通过种子文件创建微博并显示它们,但是当我真正尝试通过网站创建新帖子时,我收到了Pundit的授权错误。我得到的错误是:

Pundit::AuthorizationNotPerformedError in MicropostsController#create 

我的Microposts控制器如下所示:

class MicropostsController < ApplicationController 
  before_action :authenticate_user!
  after_action :verify_authorized

  def create
    @micropost = current_user.microposts.build(micropost_params)
    if @micropost.save
      flash[:success] = "Micropost created!"
      redirect_to current_user
    else
      @feed_items = []
      flash[:danger] = "Unable to create micropost!"
    end
  end

  def destroy
  end

  private

    def micropost_params
      params.require(:micropost).permit(:content)
    end
end

我认为没有为“创建”设置正确设置授权。行动,但我不确定应该如何设置。我对Postit for Microposts没有政策。我尝试添加一个简单的但没有改变任何东西。我学会将所有这些部分放在一起,有人会指出我正确的方向吗?

1 个答案:

答案 0 :(得分:0)

有一个操作后过滤器 verify_authorized ,因为您收到此错误。如果您已为create动作创建策略,则使用该策略来消除错误。