コジマです。
2018-3-29 もくもく会レポ #gamewith_moku2
で以前作成したブログの投稿機能を肉付けしてちょっとずつ豊かにしたいなと思いまして、
見た目はみすぼらしいのですが…(CSS勉強中)
プログラマーになりたいと思った人がやるべき7つのこと
アクシアの米村社長リスペクトで
- ログイン機能
- 画像アップロード機能
- データダウンロード機能
のうちの今回はログイン機能を作成していきたいと思います。
段取りとしては
ユーザーのモデルを作成する(とりあえずPWは平文)
↓
ユーザーの登録・編集・削除・一覧表示の画面・機能作成
↓
ログイン画面、ログイン・ログアウト機能の作成
↓
PWの暗号化対応
↓
バリデーション対応
の段取りでできたらいいなと思っています。
とりあえず今回はユーザーのモデルを作成します。
朝の時間でチャチャっと作っているので今回は作業ボリューム少ないです。
でもこれだけの機能が作れちゃうRailsやっぱしゅごい…(恍惚)
作っていくよ
コンソールからユーザーのモデルを作成していきます。
メールアドレスとパスワードでログインする形を取っていきます。
モデル:User
カラム:
表示名=>name:string
パスワード=>password:string
メールアドレス=>email:string
とします。
最終的にはpasswordからpassword_digestにして
has_secure_passwordを使用する形になっていきます。
$ rails g model User name:string password:string email:string
Running via Spring preloader in process 9199 invoke active_record create db/migrate/20180411141409_create_users.rb create app/models/user.rb invoke test_unit create test/models/user_test.rb create test/fixtures/users.yml
実行できたので、sqliteの中を直接覗きにいきます。
$ rails dbconsole sqlite> select * from sqlite_master where name = 'users'; table|users|users|8|CREATE TABLE "users" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "password" varchar, "email" varchar, "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL)
できてますねー。
.exitで抜けたらmigrateしましょう。
$ rails db:migrate == 20180411141409 CreateUsers: migrating ====================================== -- create_table(:users) -> 0.0083s == 20180411141409 CreateUsers: migrated (0.0084s) =============================
次の準備としてコントローラをこしらえていきます。
無難にusersという名前で良いでしょう。
$ rails g controller users Running via Spring preloader in process 9601 create app/controllers/users_controller.rb invoke erb create app/views/users invoke test_unit create test/controllers/users_controller_test.rb invoke helper create app/helpers/users_helper.rb invoke test_unit invoke assets invoke coffee create app/assets/javascripts/users.coffee invoke scss create app/assets/stylesheets/users.scss
とりあえず今はここまで。
次回はルーティングしてコントローラとビューをいじって
ユーザー登録ができるようにしていきます。
以上、コジマでした。