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
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"