使用ruby on rails的好处之一就是有很多功能可以不用自己来实现,有很多开源的组件可以直接拿来用,达到项目的目的。
比如登陆安全验证,要让自己来写需要考虑很多:
1. session生命周期
2. 密码加密
3. 注册邮箱验证
等等。。。
此外还有各种麻烦的model操作,sign in, sign out, register, modify password, etc....
由于这部分业务逻辑相当统一,所以使用一个模板来搞定是很省事的,而ROR的一大优势就在于各种社区相当活跃,像用户验证这种应用广泛的组件也能找到很多,这里就采用了一个很成熟、功能强大的devise引擎来做介绍,注意rails版本最低得3.2。Github主页——https://github.com/plataformatec/devise
一、安装Devise
首先安装,在项目的Gemfile中,加上
gem 'devise'
接下来回到命令行,安装该Gem
bundle install
这样devise就安装好了,接下来就是将devise添加到项目中去
rails generate devise:install
如果在用户验证功能里需要用到邮件验证,则需要把下面的代码加到config/environments/development.rb 和 production.rb中
config.action_mailer.default_url_options = { :host => 'localhost:3000' }
另外在app/views/layouts/application.html.erb里可以加上下面的代码,用于显示登录过程中的各种警告信息
<p class="notice"><%= notice %></p>
<p class="alert"><%= alert %></p>
最后,还需要在路由文件添加root action并且添加view,这个root action就是登录成功后跳转的页面,比如可以这样添加
root 'welcome#index'
默认登录成功后进入welcome控制器下的index.html.erb这个view,当然可以需要按照具体情况修改
二、添加Model
既然作为用户验证,肯定组要验证的ID和Password,所以需要建立Model,使用devise来建立model,并且迁移数据库:
rails g devise user
rake db:migrate
这样一个默认的用户Model就建立起来了,