[RUBY] Pourquoi n'est-il pas validé! ?? (unique: véritable édition)

Non. J'étais vraiment surpris. À l'heure actuelle, rails 5.2 implémente l'application Flima. : froncer les sourcils2: Validation tout le monde le fera, non? Ouais je sais. Tout le monde ressent la même chose qu'Atai. : girl_tone2: Je connais Atai. Tout d'abord. Il semble préférable d'écrire la validation à la fois dans le modèle et dans le fichier de migration, Cette fois, il s'agit du fichier de migration, c'est donc une bonne idée de se référer aux articles d'autres personnes concernant la validation du modèle.

1. La première chose que je veux que vous voyiez est la suivante!

:writing_hand_tone1:

db/migrate/create_users.rb


class DeviseCreateUsers < ActiveRecord::Migration[5.2]
  def change
    create_table :users do |t|
      ## Database authenticatable
      t.string :first_name,         null:false ,unique: true
      t.string :last_name,          null:false ,unique: true
}

Comme ça. Allons-y!

2. Faisons

:point_down_tone1:

console

 rails db:migrate

Puis. :raised_hand:

db/migrate/schema.rb


 create_table "users", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
    t.string "first_name", null: false
    t.string "last_name", null: false
}

Zugoooooooooooooooooooooooooooooooooooooooooooooooo !!

:man_tone1: null: false est validé, mais unique: true ne l'est pas! !! !! Pourquoi. .. .. Attai, je n'ai pas appris d'un tel programme d'erreur. Ah, c'est déjà un Japon douloureux.

Dans un tel cas, ceci! !!

Allons voir mysql.

Bref, le DB n'est pas validé non plus.

C'est une Amérique difficile! !! !! Je vais le chercher déjà. .. ..

3 ... quelques minutes plus tard ...

J'ai trouvé quelque chose comme ça.

Document Rails

selon lui. .. ..

 add_index :users, [:name], unique: true

Est-ce vrai! !! !! Je suis nouveau pour toi! e! ?? Je suis nouveau pour toi! !!

Tu ne le crois pas? e? Tu ne le crois pas? Ce n'est pas si facile

db/migrate/schema.rb


 create_table "users", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
  t.string "first_name", null: false
  t.string "last_name", null: false
  t.index ["first_name"], name: "index_users_on_first_name", unique: true
  t.index ["last_name"], name: "index_users_on_last_name", unique: true
}

Non, c’est réel! !! !!

:clap_tone1: C'est possible. Je ne sais pas si quelqu'un a la même situation que moi, mais cela vous sera utile: froncer les sourcils2:! !! !!

à plus.

Recommended Posts

Pourquoi n'est-il pas validé! ?? (unique: véritable édition)
Pourquoi n'est-il pas validé! ?? (unique: véritable édition)