1
這裏是我的問題:CANCAN未定義的方法`user_type?'對於「管理」:字符串
我使用慘慘的寶石。我認爲一切都很好,除了一件事,產生了undefined method 'user_type?' for "admin":String
。
這裏是我的ability.rb
class Ability
include CanCan::Ability
def initialize(user)
user ||= User.new # guest user
if user.user_type? :admin
can :manage, :all
# [code code code code commented to find more easily the problem]
else
can :read, :all
end
end
end
我user.rb
require 'digest/sha2'
class User < ActiveRecord::Base
#definisco i ruoli
ROLES = %w[admin client banned]
default_scope :order => 'user' [...]
我想不出我有什麼修改。爲什麼if user.user_type? :admin
不檢查當前用戶屬性?非常感謝您的關注!
UP:好吧,我看周圍的康康舞必要方法「CURRENT_USER」在應用控制器聲明。現在我開始工作。新聞,很快。
你上哪兒去定義USER_TYPE?方法 ? – Shreyas 2011-05-13 10:05:17
你在哪裏檢查授權?什麼控制器? (如果它是控制器)請粘貼該代碼。這是因爲不知何故,傳遞給'CanCan'的user變量是一個值爲「admin」的字符串 - 你希望'user'實際上是'User'實例。 – 2011-05-13 10:35:11
解決了! 成ability.rb 如果user.user_type == 「管理員」 在應用控制器我添加 DEF CURRENT_USER @current_user = User.find_by_id(會話[:USER_ID]) 端 謝謝! – 2011-05-13 13:16:09