3

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

在此处输入图像描述

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

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

但如果没有上传的文件,这似乎会拒绝。如果它是一个新文件,这基本上是我们想要的,但在某些情况下,我们只是通过资产 ID 更新描述。上面的 :reject_if 将拒绝这种情况。我怎样才能为更新这种其他类型的信息破例?

谢谢

4

1 回答 1

2

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

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

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

于 2014-10-19T15:16:26.630 回答