User Model作成 - Railsチュートリアルおさらい
4月に入って異動になりました。ということで、早く帰れるようになったのでRailsでアプリ作成を開始しました。
完成するかどうかは分からないけど、半分必要に駆られて、ドキュメント管理ツールを作ろうと思っています。はじめはドキュメントにコメントをつけて Amazon S3にアップロードできればいいかな…と思っています。
それでは、本日はログイン機能実装の前段階として、ユーザモデルを作成していきます。なお、この記事は、ほとんどRailsチュートリアルをおさらいする内容になっていますので悪しからず。
1. パスワード暗号化用ソフトを入れる
gemfileに "gem 'bcrypt-ruby', '3.1.2'" を追加して、bundle installする。
2. モデルを作成する
rails generate model User name:string email:string
3. データベースにテーブルを作成して、テスト環境を準備する。
rake db:migrate
rake test:prepare
4. テストを作成する。
以下、代表的な項目。
- データが投入できているかどうか(respond_to)
- 空白値が投入できないようになっているかどうか(be_valid)
- 文字長が長過ぎないかどうか("a" * 51)
- 正しいフォーマットかどうか(expect(@user).not_to be_valid)
- 一意になっているかどうか
5. モデルに入力制限を設定
before_save { self.email = email.downcase }validates :name, presence: true, length: { maximum: 50 }
VALID_EMAIL_REGEX = /\A[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i
validates :email, presence: true, format: { with: VALID_EMAIL_REGEX },
uniqueness: { case_sensitive: false }has_secure_password
6. インデックスの作成
rails generate migration add_index_to_users_email
で、db/migrate/[timestamp]_add_index_to_users_emailを作成して以下を記述する。
add_index :users, :email, unique: true
とりあえず、基本的なユーザーモデルを作成してコミット。後は明日。
メモ:残タスク
- ユーザーを作成するmigrateファイルを作成する。
- ログイン画面を作成する。