【Rails#1】ユーザーモデルを作成しよう

【Rails#1】ユーザーモデルを作成しよう

コジマです。

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

とりあえず今はここまで。
次回はルーティングしてコントローラとビューをいじって
ユーザー登録ができるようにしていきます。

以上、コジマでした。


Ruby on Railsカテゴリの最新記事