博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Ruby on Rails Tutorial 第六章 用户模型
阅读量:4309 次
发布时间:2019-06-06

本文共 1586 字,大约阅读时间需要 5 分钟。

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::Base    before_save { email.downcase! }    validates :name, presence: true, length: { maximum: 50 }    VALID_EMAIL_REGEX = /\A[\w+\-.]+@[a-z\d\-]+(\.[a-z\d\-]+)*\.[a-z]+\z/i    validate :email, presence: true,            format:    { with: VALID_EMAIL_REGEX },            uniqueness: { case_sensitive: false }    has_secure_password    validates :password, length: { minimum: 6 }end

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

你可能感兴趣的文章
安装wazuh-agent
查看>>
修改windows网络参数,让上网更快
查看>>
利用nc当作备用shell管理方案.
查看>>
备用shell管理方案之butterfly+nginx+https
查看>>
使用开源软件 jumpserver 搭造自己的堡垒机
查看>>
[报错解决] "MySQL server has gone away" 解决思路
查看>>
http状态码-备查
查看>>
iptables一些练习
查看>>
常用命令备忘 xargs
查看>>
关于nginx反代jenkins报错 反向代理设置有误
查看>>
关于Ubuntu中snap安装软件太慢解决办法
查看>>
esp8266 + dht11 + 两路继电器 实现pc远程控制开关机温度监控.并配置zabbix监控
查看>>
在linux中设置优先使用ipv4,而不是ipv6
查看>>
谷歌浏览器离线安装包下载
查看>>
正则表达式
查看>>
AWK命令使用
查看>>
Redis项目实战---应用及理论(三)---Jedis使用
查看>>
Redis项目实战--应用及理论(一)--redis基础
查看>>
Redis项目实战---应用及理论(二)---Redis集群原理
查看>>
VMware vSphere API开发(一)---vSphere 体系核心概念
查看>>