Rails 4 + Paperclip:如何在数据库中重命名文件名

时间:2013-09-05 16:53:25

标签: ruby-on-rails ruby paperclip ruby-on-rails-4

我正在使用带有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字段仍然是原始文件名(EX:scooby-dooby-doo.MOV)。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

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

object.file_file_name = 'something_else'
object.save

似乎保留原始文件上传名称。改变这个值并没有真正发挥作用。

编辑:您说您试图轻松找到相关文件,您是否了解.url上的.pathfile方法?

object.file.path 
object.file.url

在github上查看the attachment object

在查看时,似乎重新分配file_file_name的值将“打破”file.original_filename,因为它将不再准确。如果你只想要实际存储文件的文件部分,你可以尝试沿着这些行:

class MyModel < ActiveRecord::Base

  has_attached_file :file

  def actual_filename
    File.basename(file.url)
  end

end