2011-01-24 9 views
5

クリップに保存する:https://github.com/blueimp/jQuery-File-UploadRailsのアップロード・ファイルにアクセスすると、それは私がRailsの3で、次のファイルアップローダーを使用してい

クライアント側のアップローダーが正常に動作しています。

Started POST "/attachments/upload" for 127.0.0.1 at Mon Jan 24 14:15:25 -0800 2011 
    Processing by AttachmentsController#upload as */* 
    Parameters: {"_http_accept"=>"application/javascript", "authenticity_token"=>"F1h9pvCZL9HUgTjwCIAMc%252BW1cYwx7eBOPwThHfbS5ZU%253D", "file"=>#<ActionDispatch::Http::UploadedFile:0x1076a6d48 @content_type="image/jpeg", @headers="Content-Disposition: form-data; name=\"file\"; filename=\"joecocker.jpg\"\r\nContent-Type: image/jpeg\r\n", @original_filename="joecocker.jpg", @tempfile=#<File:/var/folders/lF/lF0Ne5vGFj44kV54W3zBdU+++TI/-Tmp-/RackMultipart20110124-12264-rbtnth-0>>} 

私がいる問題は、私はペーパークリップにアップロードされたファイルを保存することができませんよです:私は、私はファイルをアップロードするときは、次が掲載されていることをログファイルをRailsの中で見ることができます。

私はリートました:

@attachment = Attachment.create(:attachment => File.open(params[:file].tempfile.path)) 
@attachment = Attachment.create(:attachment => params[:file].tempfile.path) 

そしてどちらも仕事。 Paperclipは添付ファイル名「RackMultipart20110124-12264-rbtnth-0」を挿入します

ファイルをクリップに保存する方法のアイデアはありますか?ありがとう

答えて

10

params[:file]を使用してファイルにアクセスしてください。 params[:file].tempfile.pathを実行する必要はありません。ペーパークリップは完全なFileのようなオブジェクトを取ります。

0

それはあなたのモデルコードを見ずに言うのは難しいのですが、私は、私がしようとするだろう見たものに基づいて:

@attachment = Attachment.create(params[:file]) 
1

それはあなたがアクセス許可の問題を持っている場合があります。 Paperclipは、デフォルトでパブリックフォルダにシステムという名前のフォルダを作成し、そこにすべての添付ファイルを保存します。プロジェクトディレクトリへのアクセス許可を確認します。テスト目的のために、それを777に設定します

第2に、添付ファイルを手動で保存する必要はありません。クリップを使用すると、添付ファイルが自動的に保存されます。これらのステップを確実にする必要があります。

  1. あなたは、あなたのモデルにhas_attached_fileをこの行を追加しました:あなたはアバター
  2. クリップの移行を作成していると、あなたは、次のコマンドレールグラムのクリップ「モデル名」アバター(と移行を生成することができ、移行 を実行していますアバターは、添付ファイルを処理するために使用される場所)
  3. ビューページでは、ファイルの使用をアップロードしているところだけ f.file_fieldを使用します。あなたのショー/インデックスファイル使用IMAGE_TAGでアバター
  4. :avatar.url(:小さい)、私は画像の添付ファイルを想定していて、画像にスタイルを適用しています小さな親指のように

上記の手順を確認した後、プログラムを実行するだけでうまくいきます。

関連する問題