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