Ruby on Rails Devise 與 註冊時輸入使用者名稱
註冊時輸入使用者名稱
在產生 rails generate devise:views users
後,然後在註冊的地方增加 username 的欄位。
1 | # app/views/users/registrations/new.html.erb |
在 controller 增加允許使用者欄位的驗證。
1 | # app/controllers/application_controller.rb |
Ruby on Rails 設定 Devise 與 註冊 登入 登出
Ruby on Rails 中使用 Rspec
Ruby on Rails 用 Factory Girl 自動產生 rspec 測資
安裝
在 Gemfile
加上以下的部分,然後執行 bundle
。
1 | # Gemfile |
設定
在 spec/support/factory_girl.rb
新增一個檔案,且加入以下的東西。
1 | # RSpec |
然後在 spec/spec_helper.rb
的最前面加入以下行,使用 factory_girl 的設定檔。
1 | ## spec/spec_helper.rb |
Ruby on Rails 中使用 UUID primary key
PostgreSQL
在 PostgreSQL 中有支援 UUID 為唯一 ID,所以在 PostgreSQL 使用 UUID 是相對簡單的。在
migration 裡面,我們要告訴 PostgreSQL 使用 UUID extension,這樣能夠讓 PostgreSQL
自動對每一個物件建立唯一的 UUID,而不是讓 Ruby On Rails 花費額外的時間來處理。
使用 PostgreSQL 前在 Gemfile 中加上以下這行。
1 | # Gemfile |
設定 adapter 為 postgresql
1 | default: |
設定 postgresql 的密碼
1 | export PG_PASSWORD=xxxxxx |
PostgreSQL 安裝
Ruby Mix-in Module include 的規則
繼承關係
Ruby 只能繼承唯一一個 parent 的單純繼承,但藉由 Mix-in 機制,可以在單純繼承的架構下,在多個類別之間共享一些工能。
1 | class Book |
Comparable 雖然不是 parent,但是運作情形差不多
1 | ┌────────────┐ ┌────────────┐ |