创建新记录时会忽略Rails模型的默认值吗?

问题描述

我有一个像这样的消息模型

class CreateMessages < ActiveRecord::Migration[6.0]
  def change
    create_table :messages do |t|
      t.text :body
      t.references :conversation,null: false,foreign_key: true
      t.references :user,foreign_key: true
      t.boolean :seen,default: false
      t.timestamps
    end
  end
end

我希望default: false每当创建新邮件时都将'seen'的值设置为false

但是当我尝试

Message.create(conversation_id: 1,body: "something new!",user_id: 1)

然后seen: nil。我原本希望看到seen: false

我做错了什么/如何获得想要的行为?

解决方法

您可以通过在rails控制台中运行bellow命令来重新加载控制台,也可以关闭并重新打开控制台一次。我认为,它将解决您的问题。除了代码对我来说看起来不错。

reload!