Ruby on Rails Tutorial 第六章 使用者模型

來源:互聯網
上載者:User

標籤:

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 第六章 使用者模型

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.