我正在使用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