вот моя проблема:
Я использую камень канкан. Я думаю, что все настроено хорошо, за исключением одной вещи, которая производит undefined method 'user_type?' for "admin":String
.
Вот моя способность.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
Мой пользователь.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: Хорошо, я читал, что для cancan нужен метод "current_user", объявленный в контроллере приложения. Теперь я работаю над этим. Новости, скоро.
user
, передаваемая вCanCan
, представляет собой строку со значением"admin"
— вы хотите, чтобыuser
на самом деле было экземпляромUser
. - person Ramon Tayag   schedule 13.05.2011