Rails 创建新记录时模型默认值被忽略?

Rails model default value being ignored when new record created?

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

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, null: false, 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 控制台中使用以下命令重新加载您的控制台,或者您可以关闭并重新打开您的控制台一次。我想,它会解决你的问题。除了代码对我来说还不错。

reload!