`

devise介绍+使用

 
阅读更多

1:Gemfile中加入: gem 'devise'

2:建立devise档案: rails g devise:install(自动在routes.rb中加入:devise_for:user)

3:预设定网站网址:在config/environmentents/development.rb与production.rb中加入

    config.action_mailer.default_url_options = { :host => 'localhost:3000' }

4:在app/views/layouts/application.html.erb layout中加入:(提示flash信息)

    <p class="notice"><%= notice %></p>

     <p class="alert"><%= alert %></p>

5:设定主页,在routes.rb中

    root :to => ""

6:产生User model以及Migration

    rails  g devise user

7:如果需要E-mail验证登录功能,修改user.rb migration将confirmable打开

8:产生view模板

    rails g devise:views

9:建立资料表

    rake db:migrate

使用:

在需要登录的control中加上:before_filter:authenticate_user!

!!

定制登录信息:(注意修改:)

    devise默认是email和密码登录,那么,现在用用户名登录!配置如下:

1:添加username字段到User表单

    rails generate migration add_username_to_users username:string 

     rake db:migration

2:修改配置文件:是devise默认用username登录/config/initializers/devise.rb

    config.authentication_keys = [ :username ]

    config.sign_out_via = :get

3:修改注册页面,app\views\devise\registrations\new.html.erb(类似修改其他devise的视图)

        <h2>Sign up</h2>

    <%= form_for(resource, :as => resource_name, :url => registration_path(resource_name)) do |f| %>

      <%= devise_error_messages! %>

      <p><%= f.label :username %><br />//////

      <%= f.text_field :username %></p>//////

      <p><%= f.label :email %><br />

      <%= f.email_field :email %></p>

      <p><%= f.label :password %><br />

      <%= f.password_field :password %></p>

      <p><%= f.label :password_confirmation %><br />

      <%= f.password_field :password_confirmation %></p>

      <p><%= f.submit "Sign up" %></p>

    <% end %>

    <%= render :partial => "devise/shared/links" %>

4:在需要登入的 controller 加上before_filter :authenticate_user!

 

5:可以在 Layout 中加上登入登出選單

 

   <% 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 %>
分享到:
评论

相关推荐

    RubyonRails6课程作为API,通过devise_token_auth显示身.zip

    接下来,我们要介绍的是devise_token_auth,这是一个用于Rails的用户认证gem,专为API设计。它提供了 token-based 的认证方案,适用于无状态API,因为API通常不使用session来存储用户信息。devise_token_auth 提供了...

    milia:Rails5(或Rails4)+ Devise的轻松多租户

    介绍Milia是(SaaS)应用程序的可靠选择,该应用程序由多个租户(即公司或组织)使用,并且针对多租户应用程序的常见用例进行了量身定制。 Milia允许将所有租户的数据保存在同一数据库中,并强制执行基于行的租户...

    graphql_devise:位于顶部devise_token_auth的GraphQL接口

    介绍 Graphql-Devise高度依赖于3个宝石: (DTA) (这是DTA依赖项) 该gem在DTA之上提供了GraphQL接口,该接口是为REST API设计的。 令牌管理,令牌到期以及直到使用实际的GraphQL架构之前的所有功能仍由DTA控制...

    用于设计身份验证的丹麦Nemid实现。_Ruby_CSS_下载.zip

    **NemID介绍** NemID是丹麦的一个国家身份验证系统,它提供了一种安全的身份验证方法,使得丹麦公民和居民能够在网上进行各种政府服务、银行交易和其他需要身份验证的操作。NemID通常需要用户通过一个个人识别码和...

    devise-keras:Priyam Tejaswin和Akshay Chawla的可解释图像搜索

    这将转发到GCP实例端点。 如果您在从内部工作或办公室网络访问它时遇到问题,请提出问题或与联系。... devise-keras/├── build_cache.py├── cache_lime.py├── complete_model.py├── cont

    warden-doorkeeper

    您可以使用 Devise 和 Warden 保护方法,例如authenitcate_user! , 以达到相同的效果,但让您通常的绑定工作,例如current_user 。 设置 如果您使用捆绑器,则非常简单: gem "warden-doorkeeper" 或者,如果您...

    Rails插件收集

    5. **热门插件推荐**:列出一些广泛使用的Rails插件,如Devise(用户认证),Paperclip或Carrierwave(文件上传),Pundit或CanCanCan(权限控制),Newrelic(性能监控)等。 6. **源码分析**:如果博主深入探讨,...

    rail api文档

    文档会介绍如何实施这些安全措施,以及使用Devise等认证库。 11. **Action Cable**:Rails 5引入了实时通信的支持,通过WebSocket实现。Action Cable文档会讲解如何实现异步和实时的特性,如聊天室和通知系统。 这...

    silvaco教程

    ##### 实验6:NMOS器件编辑(NMOS Devise using DEVEDIT) - **实验目的**:通过DEVEDIT模块编辑并优化NMOS器件结构。 - **主要内容**:利用DEVEDIT工具调整器件尺寸和掺杂浓度,提高器件性能。 ##### 实验7:...

    Rails Best Practices

    5. **使用gem**:Rails社区有大量优秀的gem,如Devise用于用户认证,CanCanCan进行权限控制,Carrierwave或Paperclip处理上传等。合理选择和使用gem可以快速实现功能,同时注意版本管理和gem的更新。 6. **测试驱动...

    Rails.Recipes.Rails.3rd和源码

    10. **社区工具和插件**:介绍一些常用的Rails gem,如Devise用于用户认证,Paperclip或Carrierwave处理文件上传等。 附带的`rr2-code.zip`文件很可能包含了书中各章节示例代码,这将有助于读者更好地理解和实践书...

    Ruby on Rails 3.2 Tutorial

    6. **用户认证**:介绍Devise这样的认证解决方案,讲解如何实现用户注册、登录、会话管理和密码重置等功能。 7. **会话和cookies**:讲解如何使用Rails的session和cookie机制来管理用户状态。 8. **表单和链接**:...

    设计101

    标题“设计101”可能指的是一个初学者导向的课程或项目,旨在介绍设计原则和实践,特别是与Web开发相关的。在这个场景下,“由团队创建的用生成的Rails应用”描述了一个开发团队利用Ruby on Rails框架构建的应用程序...

    recordstore-rails-vue:使用RailsVue JS的Recordstore应用程序

    我们将介绍身份验证(不使用Devise :winking_face: )和基本CRUD。 将有两个应用程序。 Ruby on Rails后端-这将处理我们的数据,会话和身份验证。 Vue.js前端-这将是视图层,也是负责向基于Rails的后端发送和...

    Agile Web Development with Rails.3rd Edition.2009

    同时,还会介绍如何集成第三方库和插件,如jQuery和Devise,以及如何进行部署和性能优化。 在敏捷开发部分,作者会介绍Scrum和XP(极限编程)等敏捷方法论,阐述如何组织迭代,进行增量开发,并通过持续集成工具...

    Wrox - Professional Ruby on Rails (Feb 2008)

    书中可能介绍了如何使用和开发Gem,以及常见的Rails插件如Devise(身份验证)、CanCanCan(授权)和Paperclip(文件上传)等。 9. **部署与性能优化**:书中可能会讲解如何将Rails应用部署到服务器,如使用...

    ROR介绍演讲课件 ruby on rails

    Rails社区活跃,拥有丰富的插件和gem(Ruby的库包),如Devise用于身份验证,CanCanCan进行权限控制,Bootstrap-Sass整合Bootstrap框架等。这些gem大大扩展了Rails的功能,使得开发者可以更快地构建复杂应用。 总的...

    simply rails

    - **身份验证和授权**:讲解如何使用Devise或CanCanCan等插件实现用户注册、登录和权限管理。 #### 9. **高级主题** - **性能优化**:探讨缓存、数据库查询优化和并行处理等提高应用性能的方法。 - **RESTful...

    The art of rails

    还有可能介绍如何使用Devise或Authlogic等gem进行用户认证和授权。 在性能优化方面,《The Art of Rails》可能会讨论缓存策略,包括页面缓存、动作缓存、碎片缓存和低级别的Memcached或Redis集成。此外,数据库查询...

Global site tag (gtag.js) - Google Analytics