使用Controller中的current_user进行Cancan

时间:2013-10-18 18:17:12

标签: ruby-on-rails controller ruby-on-rails-4 cancan

我设置了我的能力,在我的控制器之上,我有来自Can Can的授权资源

load_and_authorize_resource

我的Controller操作是使用current_user方法编写的,例如:

def new
  @question = current_user.questions.new
end

def edit
  @question = current_user.questions.find(params[:id])
end

使用cancan,这似乎无法正常工作。

我如何正常工作?

1 个答案:

答案 0 :(得分:2)

根据您的评论,这将是预期的行为。

尝试将修改操作修改为

def edit
  if current_user.role_id == 4
    @question = Question.find(params[:id])
  else
    @question = current_user.questions.find(params[:id])
  end
end