gpt4 book ai didi

activerecord - Rails (ActiveRecord) 合并或如何仅更新表中的空值

转载 作者:行者123 更新时间:2023-12-03 18:06:04 30 4
gpt4 key购买 nike

使用 Mysql 我可以使用 COALESCE仅更新表中为空的值。

我怎样才能用 Rails (ActiveRecord) 做到这一点?

我不想创建 if表中每一列的语句,我猜如果我将 ActiveRecord 散列传递给 update_attributes,必须有办法做到这一点。方法。

谢谢。

最佳答案

你问的不是很清楚,但如果我理解正确,你想要这样的东西:

class Address < ActiveRecord::Base
attr_accessible :street, :city, :zip
def update_null_attributes(hash)
update_attributes(hash.keep_if { |k,v| __send__("#{v}_was").nil? })
end
end

这将获取您要更新的属性的哈希值,并仅传递最初为零的属性。它使用 ActiveModel::Dirty 对于“#{v}_was”方法。

关于activerecord - Rails (ActiveRecord) 合并或如何仅更新表中的空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13500383/

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