我的模型有一個'url'虛擬參數,鏈接上有大量數據。同一個模型有一個回形針附件:所以當創建一個新的實例時,它可以包含對象應該下載它的附件或url-string數據。我想封裝了所有的檢查,如果它是基於URL的數據或從控制器原料之一:如何在更改虛擬屬性時關閉回調?
@music = @order.build_music(params[:soundtrack])
if @music.save
format.html { redirect_to edit_order_path(@order) }
format.js
else
format.html {render :action => 'new'}
format.js
end
我希望我的音樂模式檢查,如果有一個網址的虛擬參數設置,如果這樣下載它異步:
has_attached_file :soundfile
after_save :check_if_url
def self.downloadSoundtrack(id, url)
find(id).update_column(:soundfile, open(url))
end
private
def check_if_url
if self.url.present?
Soundtrack.delay.downloadSoundtrack(self.id, self.url)
end
end
但update_column不虛參數工作,我不能用保存「因爲它會recusivelly火after_save的回調。 Plz,幫助,夥計!
只是爲了清除此事:soundfile不是數據庫字段 - 它是由paperclip虛擬屬性創建的。所以我不認爲update_all會工作 –