我正在使用CanCan,并遇到了错误诊断问题。CanCan资源加载问题
一些用户测试我的应用程序已收到NoMethodError: undefined method 'where' for nil:NilClass
来自下面指出的行。
在什么情况下,load_and_authorize_resource
会在nil
那边离开@jobs
为nil
?
class JobsController < ApplicationController
load_and_authorize_resource
def index
if Job::STATES.include? params[:state]
if params[:state] == 'in_progress'
@jobs = @jobs.where(['state = ? or state = ?', params[:state], 'needs_confirmation'])
else
###################################################
# Error thrown here
@jobs = @jobs.where(['state = ?', params[:state]])
###################################################
end
end
end
end
而且培训相关康康舞代码:
if user.role? :employee
can :read, Job do |j|
(j.employee == user) or (j.employee == nil)
end
end
你能展示相关的cancan代码吗? – rdvdijk
用适当的CanCan代码编辑 – Luke