我試圖拒絕一個空的表單條目,但我有困難。我如何使用除了嵌套散列中的拒絕
用戶既可以選擇現有位置,也可以創建一個新位置。我希望表單實際顯示空白字段,但是當它們全部爲空時拒絕它們。由於'_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