Closed ryohakjae114 closed 4 months ago
devise gemをインストールする
devise
bundle install rails generate devise:install
認証に使用するカラムをemailではなく、nameをconfig/initializers/devise.rbを変更する
config.authentication_keys = [:name]
ユーザモデルを作成するマイグレーションファイルを作成する rails generate devise User name:string profile:string external_blog_url: string
rails generate devise User name:string profile:string external_blog_url: string
マイグレーションファイルにオプションを足してrails db:migrateする。
rails db:migrate
create_table :users do |t| t.string :name, limit: 20, null: false t.string :profile, limit: 200 t.text :external_blog_url, limit: 2083 (省略) t.timestamps end
Userモデルのnameとprofileにバリデーションを掛ける
validates :name, presence: true, length: { maximum: 20 }, format: { with: /\A[a-zA-Z]+\z/, message: "英文字のみが使えます。スペースも禁止です。" } validates :profile, length: { maximum: 200 } validates :external_blog_url, length: { maximum: 2083 }
エラーが起きないようにemailに対するvalidatesをオフにする
def email_required? false end def will_save_change_to_email? false end
user.rbでnameがアルファベットしか登録できないこと、スペースも登録できないことをコンソールで確かめる
修正する箇所
devise gemをインストールする
devise
を追加認証に使用するカラムをemailではなく、nameをconfig/initializers/devise.rbを変更する
ユーザモデルを作成するマイグレーションファイルを作成する
rails generate devise User name:string profile:string external_blog_url: string
マイグレーションファイルにオプションを足して
rails db:migrate
する。Userモデルのnameとprofileにバリデーションを掛ける
エラーが起きないようにemailに対するvalidatesをオフにする
user.rbでnameがアルファベットしか登録できないこと、スペースも登録できないことをコンソールで確かめる