gpt4 book ai didi

ruby-on-rails - 防止事件记录 INSERT 为 NULL?

转载 作者:搜寻专家 更新时间:2023-10-30 19:49:22 25 4
gpt4 key购买 nike

我有一个带有计算列的数据库 View ,我用它来支持 Rails 模型。 model.create 生成的 INSERT INTO 语句试图将该列设置为 null,这会导致数据库出错并且不会创建记录。我知道 :attr_readonly 可用于在 UPDATE 中不指定该列,但是有没有办法告诉 ActiveRecord 它也不应该为 INSERT 指定它?

最佳答案

你可以:在创建对象之前从对象中手动删除该属性。

  before_create(:remove_attribute)

private

def remove_attribute
@attributes.delete('unwanted_attribute')
end

请注意,这会将属性从当前的目的。如果您需要在拥有后访问已删除的属性创建了记录,需要重新加载记录。

关于ruby-on-rails - 防止事件记录 INSERT 为 NULL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7799626/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com