2011-02-06 25 views
2

私は、Paperclipを使用してプレーンテキストファイルをアップロードするための小さなアプリケーションを作っています。私はUploadモデルに文書添付ファイルがあります。アップロードしたファイルの名前をUpload.titleと同じ名前に変更します。ファイル名db /実際の不一致のためのペーパークリップ補間

私はこれを行うためにペーパークリップ補間を使用しました。

#config/initializers/paperclip.rb 
Paperclip.interpolates('upload_title') do |attachment, style| 
    attachment.instance.title.parameterize 
end 

#app/models/upload.rb 
has_attached_file :document, 
    :url => "/:attachment/:id/:upload_title.:extension", 
    :path => ":rails_root/public/:attachment/:id/:upload_title.:extension" 

ただし、ファイル自体の名前は変更されますが、データベース内のdocument_file_nameはそのまま残ります。

私はgarethrees.co.uk/misc/new.JPG

"Original File Name.txt" 新しいUploadを作成し、ファイルを添付したテストアプリを作り、ここでhere

をGitHubのためにアップロードしました

新しいファイルUploadが作成され、元のファイル名で表示されます。データベース内

garethrees.co.uk/misc/created.JPG

そしてまた、document_file_nameは、それがあったように同じまま。

garethrees.co.uk/misc/db.JPG

しかし、実際のファイルシステムに文書が変更されます。

garethrees.co.uk/misc/finder.JPG

私は本当に私は、ファイルをダウンロードするユーザーのためにペーパークリップのパスを使用する必要があると一致させるために両方のレコードを必要としています。

おかげ

答えて

0

あなたはタイトル+延長にdocument_file_nameを自分で設定しafter_document_post_processためのコールバック関数を作成します。

+0

良いアイデア。私がPaperclipにネイティブな解決策を見つけられないなら、それを使用します。ありがとう! – ghr

関連する問題