1

我在 SQL Server 中设置了一个表,其默认值为uniqueidentifier not null.

我不希望 ActiveRecord 将空值发送到数据库,但它会导致“无法将空值插入非空列”错误。

如何在不发送具有默认值的列的情况下保存 ActiveRecord?我真的不想:

  1. 使列可以为空。
  2. 使用 Rails 生成 GUID 并将其发送到数据库
  3. 手动编写查询。

可以做 2 或 3 这似乎必须在普通的 ActiveRecord/RoR 中可行。

4

1 回答 1

0

不幸的是,我认为这是带有 Sql Server 的 Rails 的一个问题,因为使用带有 MySql 的 Rails 可以正确处理默认值(以及这种情况)。可能还有其他选项,但最快的可能是将 before_create 回调添加到您的 ActiveRecord 类并在那里设置 guid。

于 2013-01-17T18:46:11.773 回答