私は、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
私は本当に私は、ファイルをダウンロードするユーザーのためにペーパークリップのパスを使用する必要があると一致させるために両方のレコードを必要としています。
おかげ
良いアイデア。私がPaperclipにネイティブな解決策を見つけられないなら、それを使用します。ありがとう! – ghr