我试图拒绝一个空的表单条目,但我有困难。我如何使用除了嵌套散列中的拒绝
用户既可以选择现有位置,也可以创建一个新位置。我希望表单实际显示空白字段,但是当它们全部为空时拒绝它们。由于'_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"
}
A我试图让空位置在产品模型中移除如下:
accepts_nested_attributes_for :product_locations, :allow_destroy => true,
:reject_if => proc {|a| a.except('_destroy', 'quantity').values.all?(&:blank?)}
因为它是嵌套的,它不会像这样工作。 那么如何检查除数量和_destroy之外的所有物品是否空白? 应该可以一次完成它吗? 感谢您的帮助。
*更新,以使其更清晰*
数据,就像你写的那样,是一个'Array'。你的意思是提供一个'哈希'? – rossta 2013-05-13 12:21:57
嗯,好点。也许我需要更好地了解我想要做的事情。 – Fritzz 2013-05-13 12:33:07
@Fritzz在'proc'中,是'a'那个数组? – Stefan 2013-05-13 12:38:54