2012-02-22 50 views
1

我使用file_column插件上傳表單中的圖像。圖像字段名稱是「圖像」。我需要知道當我上傳表單時是否發送了一個文件(圖像是可選的)。實際上,我想在圖像更新時(在after_validation回調中)更新另一個字段(image_updated_at)。Rails文件上傳如何知道圖像是否發送

所以,我只想知道是否發送圖像來更新此字段。當有圖像時參數的內容是:

"image"=>#<ActionDispatch::Http::UploadedFile:0x10750dae0 @tempfile=#<File:/var/folders/p1/74mh4dd95zj0lpc42zm0h0kw0000gn/T/RackMultipart20120222-7745-s7rsy4-0>, @headers="Content-Disposition: form-data; name=\"wine[image]\"; filename=\"montenero2006.jpg\"\r\nContent-Type: image/jpeg\r\n", @content_type="image/jpeg", @original_filename="montenero2006.jpg">, 

我只是想測試圖像是否被髮送。要測試什麼而不是self.image?

after_validation :set_image_date 

def set_image_date 
    self.image_updated_at = Time.now() if self.image 
end 

回答

0

檢查變化對DB屬性 after_validation:set_image_date

def set_image_date 
    self.image_updated_at = Time.now() if changes[:image_file_name] 
end 

如果你不肯定上述溶液中,然後下面是可靠的解決方案

class Wine < ActiveRecord::Base 

    def initialize(*args) 
    args.merge!(:image_updated_at => Time.now) if args[:image].present? 
    super 
    end 
end 
+0

哼哼,不工作。發送新圖像時,字段image_updated_at從未更改過。 – 2012-02-22 21:21:53

+0

你能列出與模型 – 2012-02-23 08:10:16

+0

關聯的表的列我有很多列,但只有一個用於發送名爲「圖像」的圖像。 – 2012-02-23 08:55:59

相關問題