왜 밸리데이션 걸리지 않아! ? (unique:true편)

아니.
정말 놀랐습니다.
지금 rails5.2에서 프리마 앱 구현 중이에요.
밸리데이션 모두 걸립니까?
네, 알고 있어.
모두 아타이와 따뜻한 기분이네요.
아타이 알고 있다.
우선.
밸리데이션은 모델과 마이그레이션 파일 어느쪽에도 쓰는 것이 좋은 것 같습니다만,
이번은 마이그레이션 파일의 분에 관해서니까, 모델의 바리데이션에 관해서는 다른 분의 기사를 참고로 하면 좋다.

1. 먼저 보고 싶은 것은 이거!





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
}

이런 식으로.
이봐!

2. 레츠





콘솔
 rails db:migrate

그렇다면.


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
}

즈고----! !




null : false는 유효성 검사를 받았지만 unique : true는 걸리지 않았습니다! ! !
어째서. . . 아타이 이런 에러 커리큘럼에서 배우지 않아요.
아 - 벌써 힘든 재팬.

그런 때는 이것! !

mysql 쪽을 보러 가 버리자.

※오늘은 조금 귀찮아 버리니까 생략할게.

요컨대 DB쪽에도 밸리데이션 걸려 있지 않아.

이미 힘든 미국! ! !
이미 조사해 줄게. . .

3 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·



아타이 이런 것을 발견했어.

Rails 문서

그것에 따르면. . .
 add_index :users, [:name], unique: true

사실이야! ! ! 첫 귀입니다만!
어! ? 첫 귀입니다만! !

믿지 않아? 그래? 믿지 않아?
그렇게 쉽고 잘 작동하지는 않습니다.

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
}

아니 혼마 아니야! ! !




그런 일이있을 수 있습니다.
여러분에게 저와 같은 상황이 되는 사람이 있는지 모르겠습니다만, 참고가 됩니다 you 에! ! !

그럼 또.

좋은 웹페이지 즐겨찾기