2013-10-04 30 views
0

當我運行包的exec耙分貝:設置和刷新瀏覽器(當前的URL例如http://localhost:3000/xyz)我在這行錯誤刷新頁面上耙分貝後:設置

can :manage, xyz, abc_id: ABC.where(account_id: user.account_id) 

我知道獲得ability.rb錯誤這裏的用戶是零所以它的錯誤了,但有沒有辦法避免這種情況。如果用戶爲零,我正在尋找重定向到sign_in。任何建議什麼是處理這個問題的最佳方法?

謝謝

+0

什麼錯誤,你得到什麼? – Ian

+0

'NoMethodError - 未定義方法'account_id'爲零:NilClass: app/models/ability.rb:35:in'initialize' cancan(1.6.10)lib/cancan/controller_additions.rb:357:in'current_ability' 康康舞(1.6.10)LIB /康康舞/ controller_resource.rb:209:在'current_ability' 康康舞(1.6.10)LIB /康康舞/ controller_resource.rb:77:在'load_collection? (1.6.10)lib/cancan/controller_resource.rb:25:in'load_and_authorize_resource' cancan(1.6.10)lib/cancan/controller_resource.rb:33:in'load_resource' cancan /cancan/controller_resource.rb:10:in在add_before_filter'' – user588324

+0

'塊你是如何初始化在ability.rb'user'? – Ian

回答

0

我修好了。我所有檢查user.nil?如果它沒有做任何事,那麼就把我的舊代碼。因此,如果用戶是零它重定向我登錄頁面,這就是我想要的

+0

聽起來就像你在某些時候扼殺了用戶變量,你是否以任何方式修改它? – Ian