2011-10-24 85 views
0

我想使用cancan(by Ryan Bates)爲具有「author」角色的用戶禁用對Pages控制器的訪問。rails cancan gem未初始化常量CanCan :: Ability :: I18n

的PagesController如下

class PagesController < ApplicationController 
    def new 
    @page = Page.new 
    authorize! :update, @page 
    ... 
    end 
    ... 
end 

這是返回未初始化的常量慘慘:: ::能力的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 
+0

I18n是指國際化(例如不同的語言)。您是否使用英語以外的語言運行Rails? –

+0

爲了更好地幫助你,你還會發布你的'ability.rb'文件。 – janders223

+0

@AlexPeattie MySQL數據庫中的某些表使用歸類類型latin1_swedish_ci,而其他使用utf8_general_ci。你認爲這是一個問題嗎?謝謝 – Usering

回答

0

您需要安裝的i18n寶石。一旦安裝,它應該有希望工作。

相關問題