2016-11-05 task-list

今日任务

  • ruby on rails 第6章
  • ruby 元编程 第3章

总结

  • 数据库迁移
    • 生成User模型
  rails generate model User name:string email:string
invoke active_record 
create db/migrate/20160523010738_create_users.rb 
create app/models/user.rb invoke test_unit 
create test/models/user_test.rb 
create test/fixtures/users.yml

注意:控制器名字是复数,模型名字是单数

  • 生成迁移文件
rails generate migration add_index_to_users_emai
rails generate migration CreateUsers name:string 
...

如果迁移的名字是“AddXXXToYYY”或者“RemoveXXXFromYYY”这种格式,而且后面跟着一个字段名和类型列表,那么迁移中会生成合适的 add_column 或 remove_column 语句。详细信息

  • 执行迁移
    rails db:migrate
  • 撤销迁移
    rails db:rollback
  • 数据库
  • 数据库存储

要完成存储功能,需要先执行new,在执行save。或者直接使用create

   ````

user = User.new(name: "k",email: "[email protected]")
user.save
user = User.create(name: "k",email: "[email protected]")
user.valid? #判断用户是否有效
user.destroy #删除用户

>_create_的逆操作_destroy_。这两种操作都会返回对象,并且destroy销毁的对象还存储在内存中。只是数据库里面的销毁了。
+ 查找

User.find(1)
User.find_by(name: "name")
User.first
User.all #返回一个ActiveRecord::Relation实例,包含所有用户

 + 更新

第一种

user = User.first
user.name = "kakarot"
user.save
user.reload

第二种

user.update_attributes(name: "Dude", email: "[email protected]")
user.update_attribute(:name, "Duse")

+ 测试
>暂时没明白。。。

+ 数据验证 [详细信息](http://guides.ruby-china.org/active_record_validations.html)

before_save { email.downcase! }

存储前全部改为小写

validates :name, presence: true, length: { maximum: 50 }

限制name不能为空,不能大于50

VALID_EMAIL_REGEX = /\A[\w+-.]+@[a-z\d-.]+.[a-z]+\z/i

邮件匹配正则表达式

validates :email, presence: true, length: { maximum: 255 },
format: { with: VALID_EMAIL_REGEX }, uniqueness: {
case_sensitive: false }

邮件不为空,不大于255,匹配正则,唯一且不区分大小写。

你可能感兴趣的:(2016-11-05 task-list)