rails中使用devise,并用上Devise Bootstrap Views
1.在Gemfile中添加
gem 'devise', '4.1.1' gem "twitter-bootstrap-rails", '3.2.0' gem 'devise-bootstrap-views', '0.0.9'
2.在终端运行下面三个命令
$ bundle exec rails generate devise:install $ bundle exec rails generate devise user $ bundle exec rails g devise:views:bootstrap_templates
如果登录用户的表不叫user, 比如叫做editor:
$ bundle exec rails generate devise editor
如果数据库中没有这个editor表,就会新建一个,如果已经有editor,不会删掉 ,会把所有字段加到后面。
3.application controller 增加:
class ApplicationController < ActionController::Base before_action :authenticate_user! end
4.为layout/application.html.erb 增加 登录 ,退出等按钮
<% if user_signed_in? %> <ul class="nav navbar-nav" style='float:right'> <li><%= link_to "欢迎你:#{current_user.try :email}" %></li> <li> <%= link_to '退出', destroy_user_session_path, :method => :delete %> </li> </ul> <% else %> <ul class="nav navbar-nav" style='float:right'> <li> <%= link_to '登陆' , '/users/sign_in', :method => :get%> </li> </ul> <% end %>
几个核心方法:
user_signed_in? 判断用户是否登录
current_user 获取当前用户
5.输入gem env 查找devise_controller的路径,让后复制到rails 项目中。
INSTALLATION DIRECTORY: /Users/cool/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems
6.最后修改一下devise view的样式就可以了。