2013-09-05 46 views
1

我正在使用Paperclip with Rails 4將附加的視頻文件添加到我的某個模型中。我能夠保存的文件名及其新id這樣後:Rails 4 +回形針:如何重命名數據庫中的文件名

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)。我該如何解決?

回答

0

據我所知,這只是一個屬性:

object.file_file_name = 'something_else' 
object.save 

這似乎是有保留原文件上傳的名字。改變這個值並沒有什麼作用。

編輯:你說你想使它容易找到相關的文件,你就知道file.url.path方法?

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 
+0

是的。這只是一個屬性,但我需要在文件保存時動態執行此操作,並且我不確定如何在保存時訪問ID或任何視頻的屬性。這是我想弄明白的。 – emersonthis

+0

只需閱讀您的編輯。我試圖很容易地找到與該記錄對應的文件。我無法用原始文件名存儲文件,所以我試圖防止記錄和文件名之間的不匹配。 – emersonthis

+0

增加了一些更多的信息,可能有幫助... –