刚开始学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
可以看到密码是以加密的形式存储的。
这样可以认为用户注册就成功了。
相关推荐
自述文件 该自述文件通常会记录启动和运行应用程序所需的所有步骤。... Ruby版本 系统依赖 组态 数据库创建 数据库初始化 如何运行测试套件 服务(作业队列,缓存服务器,搜索引擎等) 部署说明 ...
Ruby:数据结构和算法实践 目的: 该存储库用于存储和跟踪在Ruby语言中完成的所有DS&A问题。 它既是解决方案的存储场所,又是一本日记,用于跟踪常见的DS&A策略,假设并跟踪和消除我可能有的任何不良习惯。
通过源码安装Ruby 2.7.0版本时报错,内容:ruby-2.7.0/lib/rubygems/core_ext/kernel_require.rb:92:in 'require': cannot load such file -- openssl (LoadError) 处理过程 前情提要:最近打算把自己的技术总结...
什么是鹌鹑 这是一个用于跟踪观鸟活动并与世界分享的应用程序。 它允许记录鸟类的观察信息,将其放置在地图上,附加图像,生成生命,....ruby-version`了解Ruby版本。 PostgreSQL 一些查询可能是特定于PostgreSQL。
用Ruby编写的在线相册。 使用事件,位置,时间等对照片进行分类。日记功能允许使用嵌入式预览照片或指向位置或事件搜索的链接添加条目。
Diary ON Rails(donrails)是一个内容管理系统。 它可以使用各种东西。 主要用于日记,博客和备忘录。 Donrails的目标是建立内容管理框架和培训材料,以使用Ruby on Rails开发其他应用程序。
自27岁起,我每天都会写日记。因此,我现在意识到了日常生活中的每一天。生活的幸福会根据您是否意识到目标而有很大的变化,而不论目标的大小。在日常生活中面对一些目标并管理任务。它是一个您可以共享,反向计算和...
亲爱的日记博客应用程序 对于这个应用程序,我想通过一个标准的CRUD应用程序来探索Rails项目的内部工作原理。 这个博客应用程序的创建没有生成任何脚手架或常规的Rails助手。 因此,所有路线,模型,视图和控制器都...
将来自Memiary的RSS提要(无格式口袋日记)导入到第一天杂志App中 因此,您使用Memiary已有很长时间了,想切换到《第一天日记》吗? 这个Ruby脚本会将您的条目从Memiary导入到第一天 前往...
产品特点具有两个或多个过帐的日记帐分录帐户(包括子帐户和组) 税成本中心资产负债表损益表DATEV导出依存关系Ruby2.5+ Rails 4.2+(包括Rails 6.1)安装将此行添加到您的应用程序的Gemfile中: gem 'keepr'然后...
kk - 个人日记/日志/记录工具kk 是一个用于日记、日志记录和记日记的超轻量级工具。 它将日志存储在 sqlite3 数据库中,确保即使在日志记录相当复杂的情况下也能快速更新和搜索。 kk 的灵感来自于很棒的,我的目的是...
前端技术: ... CSS :用于设计网页外观和样式的样式表语言。 JavaScript:用于在网页上实现交互性和动态效果的脚本语言。...Ruby on Rails:一个基于Ruby编程语言的Web应用框架,提供了高效的开发工具。
packlog, 背包( 按 37信号) 日记/状态更新程序 介绍我将是第一个承认这密码的人。 有很大的改进空间,但这是一个快速学习体验。它是关于运送另一个充满了简单需求...关于 ruby 社区的一个最棒的部分是代码共享区域性。
租赁服务器用户友好您需要的只是Ruby(支持2.1.0或更高版本)。它本身可以用作CGI,并且其基本功能不需要数据库或其他库。可以用插件扩展您可以使用丰富的插件添加各种功能。博客工具所需的大多数功能都可以作为插件...
将 YNAB()导出转换为日记帐。 用法 首先,确保您在 YNAB 中的预算设置与这些选项匹配,以便导出的 CSV 将采用预期格式。 打开YNAB,点击左上角,选择“预算设置”: 确保设置数字格式设置为“123.45”或类似...
自述文件 该自述文件通常会记录启动和运行应用程序所需的所有步骤。... Ruby版本 系统依赖 组态 数据库创建 数据库初始化 如何运行测试套件 服务(作业队列,缓存服务器,搜索引擎等) 部署说明 ...
日记本 ContentMine框架的日记刮板定义。目录概括此仓库是针对学术期刊的scraperJSON定义的集合。 它们可用于从期刊文章的URL中提取和下载数据,例如: 标题,作者名单,日期数字及其标题全文PDF,HTML,XML,RDF ...
systemd插件概述systemd输入插件,用于从systemd日志中读取日志systemd过滤器插件,用于对systemd日记帐分录进行基本操作支持在上加入#plugin-systemd频道要求流利的插件系统流利的Td代理Ruby> 0.1.0 > = 0.14.11,...
openstreetmap-website, 支持http的Rails 应用程序 Rails 端口" 这是 Rails 端口,它是支持网站和API的Ruby on Rails 应用程序。 软件也称为"open...这里存储库包括:该网站,包括用户帐户,日记条目,user-to-use