рельсы канканический камень неинициализированная константа CanCan :: Ability :: I18n - PullRequest
0 голосов
/ 25 октября 2011

Я хочу отключить доступ к контроллеру страниц для пользователей с ролью «автор», используя 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

1 Ответ

0 голосов
/ 04 апреля 2012

Вам необходимо установить гем i18n.Надеюсь, после установки все заработает.

...