`
任清宇
  • 浏览: 21779 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

ruby-日记

    博客分类:
  • ruby
阅读更多

       刚开始学ruby 最近在用ruby  on  rails  框架做一个简单的小网页 ,最简单的就是 注册和登录问题了 ,看似简单的功能可能对于像我这样的新手也会能迷茫,还好网上有许多的开源资料供我们学习.

首先是注册  在我们的view中建立注册页面 sinup.html.erb,然后在建立相对应的 控制器 和 路由 以及 数据库表单   

rails g controller users signup
rails g model user name:string email:string password_digest:string

     密码的字段 这样子是进行加密的字段 毕竟即使是管理员 我觉得也不应该能看到明文的密码  加密后的密码存放在password_digest字段当中. 当然最后不要忘记

 

 

rake db:migrate

 进行数据库迁移

 

 

get "signup" => "users#signup", :as => "signup"

 

 

添加相应的路由 users要对应view 中文件夹的名字

到 users_controller.rb 中

 

def signup
  @user = User.new
end

 添加上这些内容

 

路由中添加资源式路由

 

resources :users, only: [:create]

 对应的注册页面 添加金俩一个表单

 

 

<div class="signup-form-container clearfix">
  <div class="signup-form">
    <%= form_for @user do |f| %>
        <dl class="form">
          <dt><%= f.label :name, "用户名" %></dt>
          <dd><%= f.text_field :name %></dd>
        </dl>
        <dl class="form">
          <dt><%= f.label :email %></dt>
          <dd><%= f.text_field :email %></dd>
        </dl>
        <dl class="form">
          <dt><%= f.label :password, "密码" %></dt>
          <dd><%= f.password_field :password %></dd>
        </dl>
        <dl class="form">
          <dt><%= f.label :password_confirmation, "请再输入一次" %></dt>
          <dd><%= f.password_field :password_confirmation %></dd>
        </dl>
        <p><%= f.submit "注册", :class => "signup-button btn btn-primary" %></p>
    <% end %>
  </div>
</div>

 再来添加点样式 app/assets/stylesheets/sections/users.css.scss

 

 

.signup-form-container, .login-form-container{
  width: 670px;
  margin: 50px auto;
  border:1px solid #ddd;
  padding: 2em;
  .signup-form, .login-form {
    width: 100%;
  }
  .signup-button, .login-button {
    padding: 13px;
    margin-top: 15px;
    width: 100%;
  }
}

 这里停下来,看着这张页面,想想后台要有哪些代码。密码和确认密码项目要匹配,密码存入数据库的时候要加密等等这些任务如果手写是比较麻烦的,好在 Rails 内置了 has_secure_password 这个方法。

 

使用 has_secure_password

打开 has_secure_password 的文档,可以看到要使用它有两个先决条件,第一,要在 Gemfile 里面添加 Bcrypt,第二,就是要求 users 这张表里有 password_digest 这个字段,这个前面咱们已经生成过了。

到 user.rb 中,添加

 

rails c
u = User.first
 has_secure_password

 /signup 的表单中填写内容,提交会报错:找不到 users#create ,所以咱们就到 users_controller.rb 中,添加

ef create
  user = User.new(user_params)
  user.save
  redirect_to :root
end

private
  def user_params
    params.require(:user).permit!
  end

 这样就注册成功啦。到数据库中看一下

 

rails c
u = User.first

 可以看到密码是以加密的形式存储的。

这样可以认为用户注册就成功了。

 

 

分享到:
评论

相关推荐

    Avion-Journal_App:Avion学校的一个Ruby-on-Rails项目一个使用ruby on rails框架以ruby编写的日记应用程序:train2:

    自述文件 该自述文件通常会记录启动和运行应用程序所需的所有步骤。... Ruby版本 系统依赖 组态 数据库创建 数据库初始化 如何运行测试套件 服务(作业队列,缓存服务器,搜索引擎等) 部署说明 ...

    Ruby-DS-A:数据结构和算法实践(Ruby)

    Ruby:数据结构和算法实践 目的: 该存储库用于存储和跟踪在Ruby语言中完成的所有DS&A问题。 它既是解决方案的存储场所,又是一本日记,用于跟踪常见的DS&A策略,假设并跟踪和消除我可能有的任何不良习惯。

    【跳坑日记】Ubuntu 16.04安装 Ruby2.7.0遇到的坑:cannot load such file — openssl (LoadError)

    在本文中,我们将探讨在Ubuntu 16.04系统上安装Ruby 2.7.0时遇到的一个常见问题:`cannot load such file — openssl (LoadError)`。这是一个与Ruby和OpenSSL库集成有关的问题,通常发生在试图安装或运行依赖于...

    鹌鹑:观鸟日记,博客和画廊

    什么是鹌鹑 这是一个用于跟踪观鸟活动并与世界分享的应用程序。 它允许记录鸟类的观察信息,将其放置在地图上,附加图像,生成生命,....ruby-version`了解Ruby版本。 PostgreSQL 一些查询可能是特定于PostgreSQL。

    Ruby Photo Journal-开源

    用Ruby编写的在线相册。 使用事件,位置,时间等对照片进行分类。日记功能允许使用嵌入式预览照片或指向位置或事件搜索的链接添加条目。

    diary on Ruby on Rails-开源

    Diary ON Rails(donrails)是一个内容管理系统。 它可以使用各种东西。 主要用于日记,博客和备忘录。 Donrails的目标是建立内容管理框架和培训材料,以使用Ruby on Rails开发其他应用程序。

    goal-diary:日记应用程序Ruby on Rails + Haml,SCSS(BEM)+ jQuery(Ajax)+ MySQL + Nginx,AWS(EC2,S3)

    自27岁起,我每天都会写日记。因此,我现在意识到了日常生活中的每一天。生活的幸福会根据您是否意识到目标而有很大的变化,而不论目标的大小。在日常生活中面对一些目标并管理任务。它是一个您可以共享,反向计算和...

    dear-diary

    亲爱的日记博客应用程序 对于这个应用程序,我想通过一个标准的CRUD应用程序来探索Rails项目的内部工作原理。 这个博客应用程序的创建没有生成任何脚手架或常规的Rails助手。 因此,所有路线,模型,视图和控制器都...

    潇湘在线公开日记 V1.0(清爽绿色版)

    1. **Web开发框架**:该软件可能是基于某一Web开发框架构建的,如Spring Boot、Django或Ruby on Rails,这些框架可以帮助开发者快速构建功能完善的Web应用。 2. **前端技术**:页面的交互和设计可能使用了HTML5、...

    java实习日记范文3篇.docx

    - **弱类型语言**:如JavaScript、Ruby和Perl等,这类语言在变量声明时不需要指定数据类型,类型会在运行时自动确定。 - **Java编译与运行**:Java源代码通过`javac`命令编译成`.class`文件,再通过Java虚拟机(JVM...

    dayone-memiary-import:将来自Memiary的RSS提要(无格式口袋日记)导入到Day Day Journal App中

    将来自Memiary的RSS提要(无格式口袋日记)导入到第一天杂志App中 因此,您使用Memiary已有很长时间了,想切换到《第一天日记》吗? 这个Ruby脚本会将您的条目从Memiary导入到第一天 前往...

    漂亮的多用户网络日记本

    3. **后端架构**:后端可能使用Node.js、Python的Django或Flask、Ruby on Rails等语言和技术栈,负责处理用户请求、数据存储和逻辑处理。 4. **数据库管理**:可能采用MySQL、PostgreSQL或MongoDB等数据库系统来...

    easy_journal_app:使用Ruby on Rails制作的应用程序

    "简易日记"应用程序是使用Ruby on Rails框架开发的一款个人日志记录工具,旨在提供一个简单易用的平台,让用户能够方便地记录生活点滴、想法感悟或者工作笔记。Ruby on Rails,简称Rails,是一款基于Ruby语言的开源...

    梦想日记

    以上是对 "梦想日记" 项目基于Ruby开发可能涉及的一些技术点的详细解释,具体实现会根据项目需求和规模有所不同。实际开发中,可能还会用到其他工具和技术,如自动化部署、持续集成/持续交付(CI/CD)、错误追踪系统等...

    keepr:使用Ruby on Rails进行双重记账

    产品特点具有两个或多个过帐的日记帐分录帐户(包括子帐户和组) 税成本中心资产负债表损益表DATEV导出依存关系Ruby2.5+ Rails 4.2+(包括Rails 6.1)安装将此行添加到您的应用程序的Gemfile中: gem 'keepr'然后...

    kk:个人日记journaling记录工具

    kk - 个人日记/日志/记录工具kk 是一个用于日记、日志记录和记日记的超轻量级工具。 它将日志存储在 sqlite3 数据库中,确保即使在日志记录相当复杂的情况下也能快速更新和搜索。 kk 的灵感来自于很棒的,我的目的是...

    photo_journal:一个允许用户创建自己的照片日记时间流逝的网络应用程序

    《构建照片日记应用:photo_journal的Ruby实现》 在当今数字化时代,记录生活点滴的方式日益多样化,其中照片日记因其直观性和生动性深受喜爱。本文将深入探讨一款名为"photo_journal"的网络应用程序,它使用户能够...

    world-diary-2011

    如果"world-diary-2011"是一个开源项目,那么它可能使用了Ruby的标准库或第三方gem来管理和展示日记条目。 描述中提到“稍后会提供更多信息”,这暗示可能有一个Git仓库或者GitHub存储库,其中包含了项目的源代码、...

    java软件开发实习日记.pdf

    【Java软件开发实习日记】是记录了一位实习生在青岛进行软件开发实训过程的心得体会,主要涉及了Java和.NET的相关知识。以下是对这些知识点的详细阐述: 1. **角色转变**:实习期间,实习生需要从学生的身份转变为...

Global site tag (gtag.js) - Google Analytics