gpt4 book ai didi

ruby-on-rails - accepts_nested_attributes_for、reject_if 和 has_one 关系不能一起工作?

转载 作者:行者123 更新时间:2023-12-04 06:05:59 25 4
gpt4 key购买 nike

在我的模型中,我有

has_one :order, dependent: :destroy

accepts_nested_attributes_for :order, reject_if: lambda { |order| order[:description].blank? }, allow_destroy: true

出于某种原因,尽管测试了 reject_if 并返回 true(我用调试器检查过),但嵌套的顺序并没有被破坏。

互联网上有很多关于这种现象的文章,但我找不到解决方案。

有谁知道如何解决这个问题?

最佳答案

我终于在这个特定场合创建了一个智能的“reject_if”设置销毁标志,如 Destroy on blank nested attribute 中所述。 ,但是,按照我自己的规范,这不是很“ ruby ”,所以无法想象没有更好的解决方案......

accepts_nested_attributes_for :order, allow_destroy: true, reject_if: lambda { |attributes|
exists = attributes['id'].present?
empty = attributes[:description].blank?
attributes.merge!({_destroy: 1}) if exists and empty
return (!exists and empty)
}

关于ruby-on-rails - accepts_nested_attributes_for、reject_if 和 has_one 关系不能一起工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22424730/

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