gpt4 book ai didi

ruby-on-rails - 如何处理 :reject_if if a new record and not an update

转载 作者:行者123 更新时间:2023-12-02 02:15:55 26 4
gpt4 key购买 nike

我正在处理一些涉及上传图片的表单。有一个标准的两个表单要添加以及当前关联的所有表单。它看起来像这样:

enter image description here

我有一个 Assets 类,它对于涉及的其他类(例如位置、项目)是多态的。问题是可以上传或更新项目。对于项目和位置,我有以下内容:

accepts_nested_attributes_for :assets, :allow_destroy => true, :reject_if => lambda { |a| a[:asset].blank? } 

但如果没有上传文件,这似乎会拒绝。如果它是一个新文件,这基本上就是我们想要的,但在某些情况下,我们只是通过 Assets ID 更新描述。上面的 :reject_if 将拒绝该场景。我怎样才能为更新这种其他类型的信息设置异常(exception)?

谢谢

最佳答案

我通过在 params[:id] 上添加条件解决了这个问题到 reject_if堵塞。对于您的示例,它看起来像这样:

accepts_nested_attributes_for :assets, :allow_destroy => true, 
:reject_if => lambda { |a| a[:asset].blank? && a[:id].blank? }

任何现有记录都应返回 id嵌套哈希中的属性,因此这应该允许更新现有的嵌套记录,同时仍然允许您拒绝没有 asset 的新记录(因为新记录还没有 id )。

关于ruby-on-rails - 如何处理 :reject_if if a new record and not an update,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10670337/

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