1

我正在使用带有 Rails 4 的 Paperclip 将附加的视频文件添加到我的一个模型中。我可以id像这样在新文件之后命名保存的文件:

has_attached_file :file, :url=>"/tmp/video_uploads/:id.:extension", :path=>":rails_root/tmp/video_uploads/:id.:extension"   

这会使它们以正确的名称 + 原始扩展名保存到正确的位置。但是,当我查看数据库时,file_file_name新记录的字段仍然是原始文件名(例如:scooby-dooby-doo.MOV)。我该如何解决?

4

1 回答 1

0

据我所知,这只是一个属性:

object.file_file_name = 'something_else'
object.save

它似乎在那里保留了原始文件上传名称。改变这个值并没有真正做任何事情。

编辑:你说你想让找到相关文件变得容易,你知道.urlor.path方法file吗?

object.file.path 
object.file.url

看看github 上的附件对象。

看起来,重新分配 的值似乎file_file_name将“中断” file.original_filename,因为它不再准确。如果您只想要实际存储文件的文件部分,则可以尝试以下几行:

class MyModel < ActiveRecord::Base

  has_attached_file :file

  def actual_filename
    File.basename(file.url)
  end

end
于 2013-09-05T17:54:51.110 回答