0
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.

#Railsでdeviseの導入流れ
###1. Gemをインストールしてサーバーを再起動
###2. コマンドを利用してdeviseの設定ファイルを作成
###3. コマンドを利用してUserモデルを作成
###4. 未ログイン時とログイン時でボタンの表示を変える実装
###5. コントローラーにリダイレクトを設定
#deviseのgemインストール

Gemfile
# 中略
gem 'devise'
ターミナル
# サーバーを起動
% rails s

#コマンドを実行して設定ファイルを作成

ターミナル
# deviseの設定ファイルを作成
% rails g devise:install

#コマンドを実行してUserモデルを作成

ターミナル
# deviseコマンドでUserモデルを作成
% rails g devise user

#マイグレーションを実行

ターミナル
# マイグレーションを実行
% rails db:migrate

#ローカルサーバーを再起動

ターミナル
# ctrl + Cでローカルサーバーを終了

# 再度ローカルサーバーを起動
% rails s

#リダイレクト処理を用意

app/controllers/tweets_controller.rb
class TweetsController < ApplicationController
  before_action :set_tweet, only: [:edit, :show]
  before_action :move_to_index, except: [:index, :show]

  def index
    @tweets = Tweet.all
  end

  def new
    @tweet = Tweet.new
  end

  def create
    Tweet.create(tweet_params)
  end

  def destroy
    tweet = Tweet.find(params[:id])
    tweet.destroy
  end

  def edit
  end

  def update
    tweet = Tweet.find(params[:id])
    tweet.update(tweet_params)
  end

  def show
  end

  private
  def tweet_params
    params.require(:tweet).permit(:name, :image, :text)
  end

  def set_tweet
    @tweet = Tweet.find(params[:id])
  end

  def move_to_index
    unless user_signed_in?
      redirect_to action: :index
    end
  end
end

#コマンドを実行してdevise用のビューを作成

ターミナル
rails g devise:views

#usersテーブルにnicknameカラムをstring型で追加

ターミナル
# ディレクトリがpictweetであることを確認
% pwd

# usersテーブルにnicknameカラムをstring型で追加するマイグレーションファイルを作成
% rails g migration AddNicknameToUsers nickname:string

# 作成したマイグレーションを実行
% rails db:migrate
ターミナル
# ctrl + Cでローカルサーバーを終了

# 再度ローカルサーバーを起動
% rails s

#application_controller.rbを編集

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

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

#以上です!
##deviseには元々デフォルトでemailとpasswordは内部で動いてくれているのでカラムを追加しない場合はパラメーターに記述不要です!

0
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
0
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?