初学者です。
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にニックネームも保存できるか試したら保存できていました!
間違っていたらコメントお願いします!!