標籤:
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
Ruby on Rails Tutorial 第六章 使用者模型