rails3beta4 + devise + cancan 打造权限管理系统(2)

现在将整个页面汉化一下

 

首先,我们已经在application.rb里配置了local为 zh-CN, 然后到

 

http://github.com/tsechingho/rails-i18n/blob/master/rails/locale/zh-CN.yml

 

下载已经配置好的中文包到config/locales里,这样,rails的中文化已经做好了。

 

接下在做devise的汉化。

 

devise自己有自己的i18n文件,所以我们将config/locales里的devise.en.yml重命名为devise.zh-CN.yml,将里面的英文翻译为中文即可。

 

接下来做view上面的汉化

 

首先执行

 

rails g devise:views

 

就会在views下面生成devise的默认页面, 在里面进行修改即可(这一步生成的页面是erb).

 

接下来是cancan,负责授权工作

 

首先,建立app/models/ability.rb,内容如下:

 

 

class Ability
    include CanCan::Ability

    def initialize(user)
      if user.role == 'admin'
        can :manage, :all
      else
        can :read, :all
      end
    end
  end

 

在app/models/user.rb里加入

 

class User < ActiveRecord::Base
  ROLES = %w[admin moderator author banned]
end 

 

在user.rb里加个字段

 

 

script/generate migration add_role_to_users role:string
rake db:migrate
 

这样,就可以在views里调用can?或着cannot?方法来判断用户角色

 

 

<% if can? :update, @article %>
    <%= link_to "Edit", edit_article_path(@article) %>
  <% end %>
 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值