LoginSignup

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

devise導入時に生成される default: "" の意味が知りたい

解決したいこと

devise導入時に生成される default: "" の意味が知りたいです


または、問題・エラーが起きている画像をここにドラッグアンドドロップ

### 該当するソースコード
```ruby
class DeviseCreateUsers < ActiveRecord::Migration[6.0]
  def change
    create_table :users do |t|
      ## Database authenticatable
      t.string :email,              null: false, default: ""
      t.string :encrypted_password, null: false, default: ""

自分で試したこと

t.stiring :email, null:falseの

t.stiring :email,はdevise導入時に自動生成されたemailカラムで
null:false は入力時にからでは登録でいないという制約かかかっていることは分かりました

default: ""の部分の意味は機能についてご教授ください

基礎的な質問ですみません
よろしくお願いします

0

2Answer

null: falseNOT NULL制約 をかけています。
NOT NULL 制約は、NULL値(何も値が無い状態)が列に入力されないようにするためのものなので、何かしらの値を格納しなければいけません。

そこで、 default: "" で空文字をデフォルトで格納するようにしています。
空文字を格納することによって、絶対にカラムの値がnullにならないようにしている。
空文字の他にも、数値や論理値などが格納されている場合もあります。

0

レコード作成時に何も指定しなかった時のデフォルト値が空文字っていう意味ですね
deviseの実装都合でそうなっているのでは

0

Your answer might help someone💌