LoginSignup
0
1

More than 5 years have passed since last update.

devise備忘録

Posted at

:hand_splayed_tone2:初学者です。

deviseの使い方の備忘録です。

よくdeviseを使うので、備忘録として書き留める事にしました。
一連の流れざっくりまとめてみます。

gem 'devise'
$ bundle install
$ rails g devise:install

Userモデルの作成

$ rails g devise user

●新規作成されるファイル
・app/models/user.rb
・db/migrate/2014XXXXXXXXXX_devise_create_users.rb
・test/fixtures/users.yml
・test/models/user_test.rb

$ rails db:migrate
 #作成されたマイグレーションファイルの実行

devise用のビューファイルの作成

$ rails g devise:views
 #ここでいつもviewsのsをつけ忘れます、、、

●新規作成されるファイル
app/views/devise以下のディレクトリにあるビューファイル

カラムの追加

deviseのテーブルを作成した際に、基本的にemailカラムとpasswordカラム等しか作成されず、Nicknameを追加したい場合は

$ rails g migration AddNicnameToUsers nicname:string

上記で作成したマイグレーションファイルに下記追加


class AddNameToUsers < ActiveRecord::Migration[5.2]
  def change
    add_column :users, :name, :string,    null: false,unique: true,index:true
  end
end

からの

$ rake db:migrate

また、deviseを用いると、初期状態ではサインアップ時にメールアドレスとパスワードのみ受け取るようにストロングパラメーターが設定してあるので、追加したパラメーターを許可するにはapplication_controllerにて


class ApplicationController < ActionController::Base
  before_action :configure_permitted_parameters, if: :devise_controller?

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

sign_upのviewを作成

<div class="field">
        <%= f.label :nickname %> <em>(6 characters maximum)</em><br />
        <%= f.text_field :nickname, autofocus: true, maxlength: "6" %>
      </div>

これで、DBにニックネームも保存できるか試したら保存できていました!

間違っていたらコメントお願いします!!

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