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

初学者のプログラミング Deviseの導入

Posted at

gemのインストール

gem 'devise' #<= cではなくsなのに注意
$ bundle install
$ rails g devise:install

スペルミスによるエラーを出したので気をつける。
##モデルを作成

$ rails g devise Model
$ rails db:migrate

今回マイグレートのコマンド実行の際にエラーが出た。
Mysql2::Error: Specified key was too long; max key length is 767 bytes
デフォルトで設定されているencoding :utf8mb4は1文字あたり4倍とまで格納できるために起きたエラー。そこで、utf8に変更した。

config/database.yml
default: &default
  adapter: mysql2
  encoding: utf8 #<= utf8mb4より変更
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
  username: root
  password:
  socket: /tmp/mysql.sock

##ルーティング設定

config/routes.rb
Rails.application.routes.draw do
  devise_for :users
end

ターミナルでルーティング確認

                               Prefix Verb   URI Pattern                                                                              Controller#Action
                     new_user_session GET    /users/sign_in(.:format)                                                                 devise/sessions#new
                         user_session POST   /users/sign_in(.:format)                                                                 devise/sessions#create
                 destroy_user_session DELETE /users/sign_out(.:format)                                                                devise/sessions#destroy
                    new_user_password GET    /users/password/new(.:format)                                                            devise/passwords#new
                   edit_user_password GET    /users/password/edit(.:format)                                                           devise/passwords#edit
                        user_password PATCH  /users/password(.:format)                                                                devise/passwords#update
                                      PUT    /users/password(.:format)                                                                devise/passwords#update
                                      POST   /users/password(.:format)                                                                devise/passwords#create
             cancel_user_registration GET    /users/cancel(.:format)                                                                  devise/registrations#cancel
                new_user_registration GET    /users/sign_up(.:format)                                                                 devise/registrations#new
               edit_user_registration GET    /users/edit(.:format)                                                                    devise/registrations#edit
                    user_registration PATCH  /users(.:format)                                                                         devise/registrations#update
                                      PUT    /users(.:format)                                                                         devise/registrations#update
                                      DELETE /users(.:format)                                                                         devise/registrations#destroy
                                      POST   /users(.:format)                                                                         devise/registrations#create

usersのURIを確認。モデルの作成をして、マイグレートしないとルーティングエラーが出た。
methods.rb:282:in const_get': uninitialized constant User (NameError)`

##ビューの作成

$ rails generate devise:views

##ビューを確認
localhost:3000/users/sign_inにてビュー確認。
image.png

##まとめ
まず公式ドキュメントにて大まかな手順を把握。その後、各ステップで大体エラーが発生するのでその都度検索しエラー内容を仮設検証していく。

さいごに

プログラミングの初学者です。その日に学んだことを学習の一環としてアウトプットしています。より深く学習していきたいと考えておりますので、内容に誤りがございまいたらご指摘等いただけますと幸いです。

参考図書:パーフェクト Ruby on Rails【増補改訂版】すがわらまさのり/前島真一/橋立友宏/後藤優一/五十嵐邦明

##参考
https://github.com/heartcombo/devise

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?