Я хочу отключить доступ к контроллеру страниц для пользователей с ролью «автор», используя cancan (Райан Бейтс).
PagesController выглядит следующим образом
class PagesController < ApplicationController
def new
@page = Page.new
authorize! :update, @page
...
end
...
end
Это возвращает неинициализированную константу CanCan :: Ability :: I18n Обратите внимание, что то же самое происходит, когда я использую фильтр load_and_authorize_resource вместо авторизации!: update, @ page
Я использую Rails 2.2.3.Кто-нибудь сталкивался с подобной проблемой?Спасибо
Добавление кода умения.rb:
class Ability
include CanCan::Ability
def initialize(current_user)
user = User.find(:first, :conditions => ["username = ?", current_user])
user ||= User.new # guest user
if user.role?('admin')
can :manage, :all
can :manage, WpArticle
elsif user.role?('moderator')
can :manage, :all
elsif user.role?('author')
can :create, WpArticle
can :update, WpArticle
can :read, WpArticle
end
end
end