1、用户模型
(1)数据库迁移
Rails默认使用关系数据库存储数据,数据库中的表有数据行组成,每一行都有相应的列,对应数据属性。把列名命名为相应的名字后,ActiveRecord会自动把他们识别为用户对象的属性。

$ rails generate controller Users new #生成用户控制器和new动作,控制器名是复述Users
$ rails generate model User name:string email:string #生成用户模型,模型名是单数User
$ bundle exec rake db:migrate #向上迁移
$ bundle exec rake db:rollback #向下迁移

迁移是一种修改数据库结构的方式,可以根据需求递进修改数据模型。执行generte命令后会自动为用户模型创建迁移,这个迁移的作用是创建一个users表以及name和email两个列。

(2)模型文件
A:创建用户对象

>> user=User.new(name:"AmySun",email:"12***@**.com") #创建
>> user.save #保存

上面两步等价于下面一步,即把创建和保存合成一步完成:

>> foo=User.create(name:"AmySun",email:"12***@**.com")
>> foo.destroy #create的逆操作

B:查找用户对象

>> User.find(1) #根据用户ID查找
>> User.find_by(email:"12***@**.com") #通过属性查找,如果用户数量过多,使用find_by的效率不高
>> User.first #返回数据库中的第一个用户
>> User.all #返回一个ActiveRecord:Relation实例,其实这是一个数组,包含数据库中的所有用户

C:更新用户对象

>> user.email="aaa@aaa.com"
>> user.save

>> user.update_attributes(name:"LilySun",email:"bbb@bbb.com") #更新多个属性值
>> user.update_attribute(name:"LilySun") #更新单个属性值

2、用户数据验证
几种常用的数据验证:存在性、长度、格式和唯一性

$ rails generate migration add_index_to_users_email #为User的email属性添加索引
$ bundle exec rake db:migrate

添加了用户验证的User类的代码如下:

class User < ActiveRecord::Basebefore_save { email.downcase! }validates :name, presence: true, length: { maximum: 50 }VALID_EMAIL_REGEX = /\A[\w+\-.]+@[a-z\d\-]+(\.[a-z\d\-]+)*\.[a-z]+\z/ivalidate :email, presence: true,format:    { with: VALID_EMAIL_REGEX },uniqueness: { case_sensitive: false }has_secure_passwordvalidates :password, length: { minimum: 6 }
end

转载于:https://www.cnblogs.com/sunflower627/p/4643341.html

Ruby on Rails Tutorial 第六章 用户模型相关推荐

  1. 【高校宿舍管理系统】第六章 用户管理和年级管理

    第六章 用户管理和年级管理 提示:本博客个为人独立博客,不是权威,仅供参考!所有思路只做交流之用!如有不足之处,望各位在评论区友善指正. 文章目录 第六章 用户管理和年级管理 前言 一.用户管理 1. ...

  2. 《自然语言处理(哈工大 关毅 64集视频)》学习笔记:第六章 markov模型

    视频列表: 38 markov模型(一) 39 markov模型(二) 40 markov模型(三) 41 markov模型(四) 42 markov模型(五) 38 markov模型(一) 第六章 ...

  3. .NET Core实战项目之CMS 第十六章 用户登录及验证码功能实现

    前面为了方便我们只是简单实现了基本业务功能的增删改查,但是登录功能还没有实现,而登录又是系统所必须的,得益于 ASP.NET Core的可扩展性因此我们很容易实现我们的登录功能.今天我将带着大家一起来 ...

  4. 第六章 盒子模型

    1,制作北大青鸟网站的中心开班信息模块 <!DOCTYPE html> <html lang="en"> <head><meta char ...

  5. 制作爱奇艺视频播放列表(第六章盒子模型)

    <div><h2>热播</h2><ul><li><img src="../chapter04/练习4:制作爱奇异视频播放列表 ...

  6. 制作美容热点产品列表(第六章 盒子模型)

    <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8" ...

  7. [入门]Ruby on Rails入门教程及开发工具选用

    http://witcheryne.javaeye.com/blog/846714 最近在为一家公司做一个小项目,前端时间一直在用最熟悉的java,结果java的开发效率实在让人崩溃.用框架吧-一堆配 ...

  8. Ruby on Rails: 使用devise+cancan+rolify建立完整的权限管理系

    devise.cancan和rolify这三个组件结合,可以建立完整而强大的用户权限模型. devise介绍,负责用户注册.登录.退出.找回密码等操作.细节参考devise on github can ...

  9. 用sublime Text2来开发ruby on rails项目

    喜欢用sublime的程序员们可以参考这儿来进行配置: https://github.com/mhartl/rails_tutorial_sublime_text 搬运时间:2012年11月2日 Ra ...

最新文章

  1. cassandra命令
  2. 15:解决IntelliJ IDEA的乱码问题
  3. SeekBar的使用(一):实现OnSeekBarChangListener
  4. 员工工号怎么编码_华为员工感慨:工号就留在这了,感谢公司给我自己写墓志铭的机会...
  5. (二)在.net中如何使用Memcached
  6. centos7安装Cloudera Manager
  7. 第十六周项目3-有相同数字?
  8. go语言基础之工程管理和工作区介绍
  9. 云优后台提交显示parsererror_微信现场大屏实时显示结果现场投票活动制作方法...
  10. 网络游戏仅可在规定时间向未成年人提供1小时服务
  11. 取消文件与svn服务器的关联
  12. [原]超快速搞定linux的vnc
  13. dnf一天能获得多少黑暗之眼_DNF:想快速积累史诗狗眼?这几个方法可别错过,一天最少四五个...
  14. windows server 2012 AD 活动目录部署系列(三)加入域并创建域用户
  15. 运放 采集电压 电流高端采样
  16. 在阿里云上设置CDN
  17. 用SpringBoot整合ES数据库基础
  18. 阿里acp认证是什么 阿里acp认证含金量高吗
  19. 模糊测试工具Sulley开发指南(2)——与Peach比较
  20. Lumiprobe/艾美捷——LumiMAG基因组DNA血液和口腔试剂盒

热门文章

  1. 一款超强的手机屏幕投影工具
  2. Android SDK 2.3/3.0/4.0/4.2 下载与安装教程
  3. PostgreSQL Oracle 兼容性之 - INDEX SKIP SCAN (递归查询变态优化) 非驱动列索引扫描优化...
  4. Oracle 变量绑定与变量窥视合集系列一
  5. LintCode: 3 Sum
  6. JeeSite 4.0 说说前端的那些事
  7. wxpy 0.1.2微信机器人 / 优雅的微信个人号API
  8. 重写setTimeout扩展参数
  9. 解决Windows客户端访问vsftpd服务器中文乱码问题
  10. 在 LinearLayout里addView一个图表