1
1

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 3 years have passed since last update.

Deviceの導入に関してのまとめ

Last updated at Posted at 2021-01-16

※アプリケーション作成からDeviseの導入までをメモがわりに記入しています。

前提

ruby 6.0.0
rails 6.0.3.4
mysql2 0.5.3
devise 4.7.3

上記の環境で作成する。

簡易的な流れ

①作りたいアプリケーションを立ち上げます。

コンソール
% rails _6.0.0_ new アプリ名 -d mysql

②アプリ内のdatabase.ymlの記述を書き換えます。

config/database.yml
#中略
default: &default
  adapter: mysql2
# ↓↓元々はencoding: utf8mb4
  encoding: utf8
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
  username: root
  password:
  socket: /tmp/mysql.sock

#以下略

③gemfile内の最下層に追加したいgemを記入します。

Gemfile
#中略
# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]

gem 'pry-rails'
gem 'devise'

④gemを読み込ませます。

コンソール
% bundle install
コンソール
% yarn install

⑤コンソール上の作成したアプリのディレクトリでデータベースを作成します。

コンソール
% rails db:create

⑥アプリにDeviseをインストールします。

コンソール
% rails g devise:install

⑦Deviseを用いたモデルの生成をします。
 (マイグレーションファイルやルーティングも自動生成されます。)

コンソール
# モデル名は単数
% rails g devise モデル名

⑧新規登録とログインのためのビューファイルを作成します。

コンソール
% rails g devise:views

⑨ローカルサーバーを起動します。

コンソール
% rails s

⑩マイグレーションファイルに追加するカラムを記述します。
※emailとpasswordについてはdeviseで生成した時に作成されています。

11.テーブルをマイグレーションします。

コンソール
% rails db:migrate

12.各編集・設定を行います。
view/devise/registrations →新規登録画面の編集
view/devise/sessions  →ログイン画面の編集
model/テーブル名.rb  →バリデーションの設定

13.application_controller.rbを編集します。

controllers/application_controller.rb
class ApplicationController < ActionController::Base
  before_action :configure_permitted_parameters, if: :devise_controller?

  private
  def configure_permitted_parameters
# keysの内容はdeviseのテーブルに追加したカラム名
    devise_parameter_sanitizer.permit(:sign_up, keys: [:カラム1, :カラム2, ])
  end
end

以上

その他注意点など

・新規登録ページ、ログインページに至るためのルーティングは、モデル作成時に自動で生成されています。

・ユーザー管理機能に必要なコントローラーの処理は裏側に隠れているため、コントローラーを統括している「application_controller.rb」に対して記述することになります。

・「rails g devise:install」がうまくいかない時は、以下を実行してみましょう。

コンソール
$ bundle exec spring stop
1
1
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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?