Ruby on Rails Tutorial 第六章 用户模型

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="[email protected]"
>> user.save

>> user.update_attributes(name:"LilySun",email:"[email protected]") #更新多个属性值
>> 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+\-.][email protected][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
时间: 2024-08-08 07:22:50

Ruby on Rails Tutorial 第六章 用户模型的相关文章

Ruby on Rails Tutorial 第四章 Rails背后的Ruby 之 类

Ruby和其他面向对象的语言一样,使用类来组织方法,然后实例化类,创建对象.1.构造方法使用双引号是字符串的字面构造方法,也可以使用“具名构造方法”,即在类名上调用new方法 >> s="foobar" >> s.class => String >> s=String.new("foobar") >> s=="foobar" => true >> a=Array.new([1

Ruby on Rails Tutorial 第四章 Rails背后的Ruby 之 字符串

1.辅助方法 2.字符串 输入“irb”进入Ruby命令行开发环境,控制器的启动方法是在命令行中执行“rails console”. (1)字符串连接 >>"foo"+"bar" =>"foobar" (2)通过特殊的句法#{}进行插值操作 >>first_name="Amy" =>"Amy" >>"#{first_name} Sun" =

Ruby on Rails Tutorial 第四章 Rails背后的Ruby 之 其他数据类型

1.数组和值域 2.块 约定:当块中只有一行简单的代码时使用花括号形式:当块是一行很长的代码,或者有很多行时使用do..end形式.例如: >> (1..5).each{|i| puts 2*i} (1..5).each do |i| puts 2*i puts '-' end >> 3.times{puts "betelgeuse"} >> (1..5).map{|i| i**2} >> %w[a b c].map{|char| cha

《Ruby on Rails Tutorial》

总共分为11章节,一个简单的微博系统.完全是以测试去驱动开发,所以书里面有很多测试代码,刚开始会觉得很不习惯,然后过了一段时间后,还是不习惯这样的开发方式.最后选择以自己的方式来整理书里面的知识点.也就是说,我把开发的部分,跟测试部分,区分开来.后面想了下,觉得知识点可以分为以下4点. 1.git的使用初始化项目 git init添加内容 git add .提交到本地仓库 git commit -m "备注"提交到远程分支 git push拉取内容 git pull查看分支 git b

第六章 用户帐号和组管理

第六章 用户帐号和组管理 第一节 用户分类 超级用户 root:x:0:0:root:/root:/bin/bash root x 0 0 root /root /bin/bash 用户名为root x表示有密码 用户ID 组ID 与用户相关的注释 用户主目录 登录系统后执行的第一个程序 普通用户 thomas:x:1000:1000:thomas:/home/thomas:/bin/bash thomas x 1000 1000 thomas /home/thomas /bin/bash 用户

ruby on rails 修改数据库内所有用户的密码

ruby on rails 修改数据库内所有用户的密码 ,全部改成1111 项目文件夹内: rails c User.all.each do |u| u.password='1111' u.password_confirmation='1111' u.save end ruby on rails 修改数据库内所有用户的密码,布布扣,bubuko.com

Ruby on Rails Tutorial 第二章 之 用户资源&amp;MVC&amp;REST

说明:用户资源包括用户数据模型和这个模型相关的Web页面. 1.用户数据模型如下: 2.使用Rails内置的脚手架生成用户资源中,执行如下所示命令: $ rails generate scaffold User name:string email:string    #创建模型 $ rails destroy scaffold User    #销毁模型 $ bundle exec rake db:migrate   #用Rake来迁移数据库,为了使用Gemfile中指定的Rake版本,通过bu

Ruby on Rails Tutorial 第一章 简介

1.目标:掌握MVC和REST.生成器.迁移.路由.嵌入式Ruby 本书涉及Rails,Ruby语言,Rails默认使用的测试框架(MiniTest),Unix命令行,HTML,CSS,少量的JavaScript,以及一点SQL. 2.演示应用: hello_app(1.3节) toy_app(第2章) sample_app(第3章到第12章) 3.Ruby on Rails(简称Rails)成功的关键: (1)Rails完全开源,基于MIT协议发布,可以免费下载.使用: (2)Rails的设计

Ruby on Rails Tutorial 第二章

2.玩具应用 第二章,作者通过脚手架(scaffold generator) 快速地构建了一个应用,并围绕该应用谈论了关于数据模型.模型资源. MVC 架构.REST 架构的相关知识. 数据模型 & 模型资源 数据模型(data model) 用于表示应用所需的结构,例如:在一个微博类的网站中,包含两个数据模型: Micropost 和 User. 模型资源(resource) 是数据模型与网页页面的结合,可以通过 HTTP 命令来实现对模型的操作.这一思想与 REST 架构方式有关. MVC