2012-05-20 83 views
3

我正在處理涉及上傳圖像的某些表單。有一個標準的兩種表格可以添加,並且所有表格都與當前關聯。它看起來是這樣的:如何處理:reject_if如果是新記錄而不是更新

enter image description here

我有一個資產類,它是多態參與其他類(如位置,項目)。問題是可以上傳或更新項目。對於項目和地點,我有以下幾點:

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

但這似乎拒絕,如果沒有上傳。如果它是一個新文件,這實質上就是我們想要的,但有些情況下我們只是通過資產ID更新描述。以上:reject_if將拒絕該場景。我怎樣才能更新這種其他類型的信息?

THX

回答

2

我通過上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)。

相關問題