安装
Gemfile中加入
gem 'devise'
在项目中
bundel install
安装好devise后,运行
rails generate devise:install
运行后会出来四个提示,一步步来
- 一:邮件中你的url要一个缺省值,如果是开发环境,请把下面这行代码粘贴在你的config/environments/development.rb中,放在mailer代码下面即可
config.action_mailer.default_url_options= { :host => 'localhost:3000' }
- 二:保证要有一个缺省页面(肯定啊,要没有的话验证后蹦到哪里啊)
可以运行
rails g controller today index自己生成一个控制器,在rout.rb中敲上
root :to => "today#index"
就往这儿蹦了!
- 三:在app/views/layouts/application.html.erb中加点儿flash片段,人性化一些
<p class="notice"><%= notice %></p> <p class="alert"><%= alert %></p>
- 四:关于heroku的,暂时不用理它。
rails generate devise User
rake db:migrate
rake routes
root / today#index new_user_session GET /users/sign_in(.:format) devise/sessions#new user_session POST /users/sign_in(.:format) devise/sessions#create destroy_user_session DELETE /users/sign_out(.:format) devise/sessions#destroy user_password POST /users/password(.:format) devise/passwords#create new_user_password GET /users/password/new(.:format) devise/passwords#new edit_user_password GET /users/password/edit(.:format) devise/passwords#edit PUT /users/password(.:format) devise/passwords#update cancel_user_registration GET /users/cancel(.:format) devise/registrations#cancel user_registration POST /users(.:format) devise/registrations#create new_user_registration GET /users/sign_up(.:format) devise/registrations#new edit_user_registration GET /users/edit(.:format) devise/registrations#edit PUT /users(.:format) devise/registrations#update DELETE /users(.:format) devise/registrations#destroy
可以看到我们生成的路由了!
第一列是路由help,第二列不说了,第三列浏览器路径,第四列实际路由
可以在浏览器中输入http://0.0.0.0:3000/users/sign_up,访问devise/registrations#new
在index中编写代码如下
<h1>Today#index</h1> <p>devise插件测试</p> <%if user_signed_in?%> <%= current_user.email%><br /> <%= link_to "登出", destroy_user_session_path, :method => :delete %><br /> <% else%> <%= link_to 'sign up',new_user_registration_path %> or <%= link_to 'sign in',new_user_session_path %> <% end %>可以测试一下。
使用
拦截所有访问 在application_controller.rb中添加
before_filter :authenticate_user!, :except => [:show, :index]
生成所有devise的views页面
rails generate devise_views
增加一个字段
rails generate migration add_username_to_users username:string rake db:migrate更改devise的设置 在config/initializers/devise.rb中,如更改密码长度,验证字段等
config.authentication_keys = [ :username ] config.password_length = 4..128更改缺省路由
devise_for :users, :path_names => { :sign_up => "register" }sing_up不会再用,而用register替代
更改语言设置 config/locales/devise.en.yml