2012-04-23 82 views
14

我用這個方法在保存之前重命名圖像之前重命名文件:回形針 - 節能

def rename_avatar 
    self.avatar.instance_write :file_name, Time.now.to_i.to_s 
    end 

    before_post_process :rename_avatar 

的圖像由當前時間重命名,但不是添加的文件類型,而不是1334487964。 jpg僅保存1334487964.

我在那裏錯過了什麼?我想:FILE_NAME只包含文件名 - 無文件類型

回答

22

這是我如何解決我的問題的方式:

def rename_avatar 
    #avatar_file_name - important is the first word - avatar - depends on your column in DB table 
    extension = File.extname(avatar_file_name).downcase 
    self.avatar.instance_write :file_name, "#{Time.now.to_i.to_s}#{extension}" 
    end 
+0

該解決方案工作正常,除了如果您正在編輯記錄的事實。在我的情況下,我有3個附件,照片,證書1,證書2,如果我更改照片,我必須再次上傳證書,因爲例程在回調「before_post」時會在數據庫中記錄一個新的不存在的文件名。你有這個解決方案嗎?謝謝! ;) – drmwndr 2014-03-13 19:42:51