rails3beta4 + devise + cancan 打造权限管理系统
2012-01-03 12:46
435 查看
rails3beta4 + devise + cancan 打造权限管理系统
为后面的项目做准备, 先拿来练练手。
rails的环境搭建不再重复,先新建项目rails new passport -d=postgresql
配置postgresql的帐号密码
rake db:create
启动rails, 查看http://localhost:3000, 一切正常
配置Gemfile
gem 'devise', '1.1.rc2' gem 'cancan' gem 'haml' gem 'rails3-generators', :group => :development
开始安装Gem
bundle install
将haml作为默认模板,编辑config/application.rb
config.time_zone = 'Beijing' config.i18n.default_locale = 'zh-CN' config.generators do |g| g.template_engine :haml end
安装haml
rails g haml:install
安装devise
rails g devise:install
使用devise工具生成user
rails g devise user
生成home页面
rails g controller home index
修改route,将默认页面转到home页面,在home_controller里加上一行
before_filter :authenticate_user!
执行migrate, 重新打开页面,便会跳转到http://localhost:3000/users/sign_in
说明devise安装成功
后面准备中文化操作
现在将整个页面汉化一下
首先,我们已经在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 %>
相关文章推荐
- Ruby on Rails: 使用devise+cancan+rolify建立完整的权限管理系统
- Ruby on Rails: 使用devise+cancan+rolify建立完整的权限管理系统
- rails权限管理—devise+cancan+rolify
- Ruby on Rails: 使用devise+cancan+rolify建立完整的权限管理系
- Ruby on Rails: 使用devise+cancan+rolify建立完整的权限管理系
- rails权限管理—devise+cancan+rolify
- 一步步打造基于ASP.NET的CMS内容管理系统--Step4 权限设定(补充)
- 一起打造.NET职业生涯奇迹 中国十大快递公司之一的核心业务系统采用.NET通用权限管理系统组件架构重构[重磅博客园独有福利]
- 打造一套UI与后台并重.net通用权限管理系统 推荐
- ruby on rails 权限管理gem cancan
- 如何使用AngularJs打造权限管理系统【简易型】
- 一起打造.NET职业生涯奇迹 中国十大快递公司之一的核心业务系统采用.NET通用权限管理系统组件架构重构[重磅博客园独有福利]
- (转)打造一套UI与后台并重.net通用权限管理系统
- 写在通用权限管理系统销售200套,从刚开始求人家用到人家主动索取,写一下亲身感受
- 如何打造一款优秀的产品管理系统?
- 基于RBAC的权限管理系统的实现
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(18)-权限管理系统-表数据
- 写在C#.NET通用权限管理系统组件源码已销售300多套
- Shiro系统权限管理、及原理剖析
- Html+JS+PowerShell打造Web版AD管理系统 (一)