Ruby on Rails Tutorial 学习笔记 --第六章 用户模型

-3.新装gem后要重启服务器

-2.开发数据库:

[ruby]  view plain copy
  1. bundle exec rake db:migrate  

测试数据库:

[ruby]  view plain copy
  1. $ bundle exec rake db:test:prepare  


-1. 创建对象:rails console

0.

[ruby]  view plain copy
  1. $ bundle exec annotate --position before  

1.Active Record 提供了一系列的方法,直接用于创建、保存、查询数据对象,而无需使用关系数据库所用的结构化查询语言(structured query language, SQL)

2.生成用户模型

[ruby]  view plain copy
  1. rails generate model User name:string email:string  

3. 和控制器的命令习惯不同,模型的名字是单数:控制器是 Users,而模型是 User

4.timestamps 是个特殊的方法,它会自动创建两个列,created_at 和 updated_at,这两个列分别记录创建用户的时间戳和更新用户数据的时间戳。

5.用rake 命令来执行迁移

[ruby]  view plain copy
  1. $ bundle exec rake db:migrate  

反迁移

[ruby]  view plain copy
  1. $ bundle exec rake db:rollback  

6.模型注解

[ruby]  view plain copy
  1. $ bundle exec annotate --position before  

7.用户数据验证

[ruby]  view plain copy
  1. class User < ActiveRecord::Base  
  2.   attr_accessible :name:email  
  3.   
  4.   validates :name, presence: true, length: { maximum: 50 }  
  5.   VALID_EMAIL_REGEX = /\A[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i  
  6.   validates :email, presence: true, format: { with: VALID_EMAIL_REGEX }  
  7. end  

在数据库层也加上唯一性限制

在数据库中为 email 列建立索引,然后为索引加上唯一性限制。

[ruby]  view plain copy
  1. $ rails generate migration add_index_to_users_email #<span style="color: rgb(34, 34, 34); font-family: 'Helvetica Neue', 'Luxi Sans', 'DejaVu Sans', Tahoma, 'Hiragino Sans GB', 'Microsoft Yahei', STHeiti; font-size: 14.399999618530273px; line-height: 17.600000381469727px; background-color: rgba(255, 255, 255, 0.701961);">使用</span><code style="font-family: monospace, serif; font-size: 14.399999618530273px; color: rgb(34, 34, 34); line-height: 17.600000381469727px; background-color: rgba(255, 255, 255, 0.701961);">migration</code><span style="color: rgb(34, 34, 34); font-family: 'Helvetica Neue', 'Luxi Sans', 'DejaVu Sans', Tahoma, 'Hiragino Sans GB', 'Microsoft Yahei', STHeiti; font-size: 14.399999618530273px; line-height: 17.600000381469727px; background-color: rgba(255, 255, 255, 0.701961);"> 命令直接创建迁移文件</span>  
[ruby]  view plain copy
  1. 保 Email 唯一性的迁移文件  
  2. class AddIndexToUsersEmail < ActiveRecord::Migration  
  3.   def change  
  4.     add_index :users:email, unique: true  
  5.   end  
  6. end  
[ruby]  view plain copy
  1. 执行数据库迁移操作  
  2. $ bundle exec rake db:migrate  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值