0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

アプリにログイン機能を追加

Last updated at Posted at 2022-12-12

参考記事

参考記事というか、deviseについてはここに全部書いてあります。
https://github.com/heartcombo/devise#starting-with-rails

バージョン

Ruby:2.7.7
Rails:7.0.4

gemをインストール

これをやらないと使えないです。

Gemfile
gem 'devise'

保存後、ターミナルに下記のコードを入力

 bundle install

セットアップ

インストールが完了すると、色々出てくるので指示通りに進めていきます。
※保存を忘れずに
スクリーンショット 2022-12-13 1.43.00.png

[1] config/environments/development.rbに以下のコードを書く。

config/environments/development.rb
config.action_mailer.default_url_options = { host: 'localhost', port: 3000 }

endタグより前に書きましょう。

[2]config/routes.rbに以下のコードを入力

config/routes.rb
root to: "home#index"

[3]app/views/layouts/application.html.erbに以下のコードを入力

app/views/layouts/application.html.erb
<p class="notice"><%= notice %></p> 
<p class="alert"><%= alert %></p>

フラッシュメッセージ(ログインしました。ログアウトしました。)を表示してくれるようにするコード。

[4]ターミナルで以下のコードを書く。

rails g devise:views

ログイン画面などをカスタマイズできる。

ユーザーモデルを作成

ターミナルで以下のコードを書く。

rails generate devise user

アプリ名//db/migrateにユーザーズテーブルを作成するためのコードが作られる。
※デフォルトでは、emailとpasswordしかない。

おまけ

ユーザー名とプロフィールとプロフィール画像のカラムを追加する。

/Users/etaku/cripit/db/migrate/数字_devise_create_users.rb
t.string :username
t.text :profil
t.string :profile_image_id

クリエイトユーザーの数字は人によって変わります。

データベースに反映させる

上記のコードを書き、保存をしたらターミナルで以下のコードを書く。

rails db:migrate

このような表示がされたら大丈夫です。
スクリーンショット 2022-12-13 2.23.54.png

反映されてるか確認

先ほどのコードが反映されているか確認する場合は、"アプリ名/db/schema.rb"で確認できます。
スクリーンショット 2022-12-13 2.59.57.png

先ほど作ったテーブル(username, profile, profile_image)がしっかり反映されています。

終わり

導入はこれで完了なので、あとはレイアウトだったりを変えていけばいいと思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?