rails3beta4 + devise + cancan 打造权限管理系统(2)
时间:2010-07-15 来源:zool
现在将整个页面汉化一下
首先,我们已经在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 %>