我试图拒绝一个空的表单条目,但我遇到了困难。
用户可以选择现有位置,也可以创建新位置。我希望表单实际显示空字段,但当它们全部为空时拒绝它们。由于 '_destroy' 永远不会为空,我需要例外。此外,如果仅填写数量,则可以拒绝该条目。
表单提交以下信息:
参数:
{"product"=>
{...,
"product_locations_attributes"=>
{
"0"=>{"location_attributes"=>{"_destroy"=>"false", "street"=>"", "number"=>"", "zipcode"=>"", "city"=>"", "country"=>""}, "quantity"=>""},
"1"=>{"_destroy"=>"false", "location_id"=>"", "quantity"=>""}}
}
, "commit"=>"Create Product"
}
AI 试图在 Product 模型中删除空位置,如下所示:
accepts_nested_attributes_for :product_locations, :allow_destroy => true,
:reject_if => proc {|a| a.except('_destroy', 'quantity').values.all?( &:blank? )}
由于它是嵌套的,因此不能这样工作。那么如何检查除了数量和_destroy之外的所有内容是否都是空白的?应该可以一口气搞定吧?谢谢你的帮助。
*更新以使其更清晰*