rails cancan gem uninitialized constant CanCan :: Ability :: I18n

时间:2011-10-24 20:02:02

标签: ruby-on-rails ruby authorization cancan activesupport

我想使用cancan(由Ryan Bates)禁用对具有角色“author”的用户的Pages控制器的访问权限。

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。 有没有人遇到类似的问题? 感谢

添加ability.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 :(得分:0)

您需要安装i18n gem。一旦安装,它应该有用。