rails gem 开发之 devise的快速开发

来源:互联网 发布:联想控股idc数据 编辑:程序博客网 时间:2024/05/18 01:35

用户认证是一个整体的模块,如何快速集成devise,能极高的提高我们的程序开发速度。


  1.  Gemfile
    gem "devise", '2.1.0'

  2. bundle install
  3. rails generate devise:install

  4. 安装提示,写入相应的代码
  5. rails generate devise  user

  6. rake db:migrate

  7. rails generate devise:views users
    需要设置
    config.scoped_views = true
    才行

  8. 增加国际化 devise.zh.yml
    zh:  errors:    messages:      not_found: "没有找到"      already_confirmed: "已经确认"      not_locked: "没有锁定"  devise:    failure:      unauthenticated: '继续操作前请注册或者登录.'      unconfirmed: '请先激活您的帐号'      locked: '您的帐号已被锁定.'      invalid: '手机号或密码错误'      invalid_token: '认证码无效.'      timeout: '您已登录超时,请重新登录.'      inactive: '您还没有激活帐户.'      already_authenticated: "您已经登录了."    sessions:      signed_in: '登录成功.'      signed_out: '退出成功.'    passwords:      send_instructions: '几分后,您将收到重置密码的电子邮件.'      updated: '您的密码已修改成功,请重新登录.'    confirmations:      send_instructions: '几分后,您将收到帐号激活的电子邮件.'      confirmed: '您的帐号已经激活,请登录.'    registrations:      signed_up: '您的帐号已注册成功.'      updated: '帐号资料更新成功.'      destroyed: '再见!您的帐户已成功注销。我们希望很快可以再见到您.'    unlocks:      send_instructions: '几分后,您将收到一封帐号解锁的邮件.'      unlocked: '您的帐号已成功解锁,请登录.'    mailer:      confirmation_instructions:        subject: '确认信息'      reset_password_instructions:        subject: '重置密码信息'      unlock_instructions:        subject: '解锁信息'
  9. 如何改变默认的devise 登录成功后的跳转页面?
    class ApplicationController < ActionController::Base  private  # 注销成功后  def after_sign_out_path_for(resource_or_scope)    root_path  endend


    登录成功后
      def after_sign_in_path_for(resource_or_scope)    categories_path  end  



  10. 补充
    定制controller

    rails g controller users::sessions   devise_for :users, :controllers => { :sessions => "users/sessions" }




  11. 常用
    before_filter :authenticate_user!user_signed_in?current_useruser_session



    如何定制devise的route? 比如我们想去掉devise的注册功能。 
    有两个办法:
    1, 在action 层停止,覆写对应的action
    2, 定制routes.rb 可以参考如下的代码
      devise_for :users, :controllers => { :sessions => "users/sessions" },    :path_names => { :sign_in => 'login', :sign_out => 'logout'},    :skip => [:registrations, :passwords]








原创粉丝点击