[Rails] ログイン機能 devise 流れ 簡易メモ


Gemfile
gem 'devise'
Terminal
$ bundle install
Terminal(サーバー立ち上げ直し)
$ rails s
Terminal(deviseの設定ファイルを作成)
$ rails g devise:install
Terminal(モデルを作成)
$ rails g devise user
Terminal(上記で作成されたマイグレーションファイルを実行)
$ rake db:migrate
controller(ログインしていない時に他のアクションが動かないようにする)
before_action :move_to_index, except: :index

def index
  @tweets = Tweet.page(params[:page]).per(5).order("created_at DESC")
end

private
def move_to_index
  redirect_to action: :index unless user_signed_in?
end
Terminal(viewを変更したい時、このコマンドで作成されるviewを編集する)
 $ rails g devise:views
Terminal(カラムを追加)
$ rails g migration AddNicknameToUsers nickname:string
Terminal(上記で作成されたマイグレーションファイルを実行)
$ rake db:migrate
html.erb上記のカラムをviewから入力(登録)できるようにする。
 <%= f.text_field :nickname, autofocus: true, maxlength: "6" %>
ApplicationControllerにストロングパラメーターを設定
class ApplicationController < ActionController::Base

  before_action :configure_permitted_parameters, if: :devise_controller?

  def configure_permitted_parameters
    devise_parameter_sanitizer.permit(:sign_up, keys: [:nickname])
  end
end