rails 权限系统搭建

1、基础配置
rails new demo8 --skip-bundle


vi Gemfile


gem 'mysql'
gem 'devise'
gem 'cancan'
gem 'rolify'
gem "twitter-bootstrap-rails"
bundle install


vi config/database.yml


default: &default
   adapter: mysql
   username: root
   password: passwd
   host: 127.0.0.1
   database: demo7
development:
  <<: *default
  database: demo7-dev
test:
  <<: *default
  database: demo7-test
production:
  <<: *default
  database: demo7


2、初始化
rails g scaffold product name:string
rails g devise:install
rails g devise User
rails g devise:views


rails g cancan:ability
rails g rolify Role User


rake db:create
rake db:migrate






3、修改文件
vi config/environments/development.rb
config.action_mailer.default_url_options = { :host => '23.88.238.6:3000' }


vi config/routes.rb
root :to => "products#index"


vi app/views/layouts/application.html.erb
<p class="notice"><%= notice %></p>
<p class="alert"><%= alert %></p> 


<% if current_user %>
      <%= link_to('退出', destroy_user_session_path, :method => :delete) %> |
      <%= link_to('修改密码', edit_registration_path(:user)) %>
    <% else %>
      <%= link_to('注册', new_registration_path(:user)) %> |
      <%= link_to('登录', new_session_path(:user)) %>
    <% end %>


vi app/controllers/products_controller.rb 
before_filter :authenticate_user!


4、
注册用户


添加角色
rails c
user = User.find(1)
user.add_role :admin




5、验证权限
vi app/models/ability.rb
class Ability
      include CanCan::Ability
      def initialize(user)
        if user.has_role? :admin
          can :manage, :all
        else
          can :read, :all
        end
      end
    end




vi app/view/products/index.erb
<% if user_signed_in? %>
        <p>The user is loged in.</p>
        <% if can? :manage, :Home %>
          <%= link_to "About", new_product_path   %>
        <% end %>
    <% end %>




6、bootstrap
rails generate bootstrap:install static
rails g bootstrap:layout admin
rails g bootstrap:themed product


vi app/controllers/products_controller.rb 

layout "admin"








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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值