Paperclip - 保存前重命名文件

use*_*621 15 file-rename paperclip ruby-on-rails-3

我在保存之前使用此方法重命名图像:

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

  before_post_process :rename_avatar
Run Code Online (Sandbox Code Playgroud)

图像被当前时间重命名,但没有添加文件类型,而是1334487964.jpg仅保存1334487964.

那里我想念的是什么?我想:file_name只包含文件名 - 没有文件类型

use*_*621 23

这是我解决问题的方法:

  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
Run Code Online (Sandbox Code Playgroud)