1

私はペーパークリップのウェブサイトからすべてのデフォルト設定を持っています。新しいアプリケーションを作成して設定を入れると、モデルを保存すると、「写真」のペーパークリップ属性が適切に保存され、すべて問題ありません(SQL INSERTサンプルを次に示します)。

"photo"=>#<ActionDispatch::Http::UploadedFile:0x007f990a3d92d0
@original_filename="Screen Shot 2011-10-21 at 6.02.56 AM.png",
@content_type="image/png", @headers="Content-Disposition: form-data;
name=\"event[photo]\"; filename=\"Screen Shot 2011-10-21 at 6.02.56
AM.png\"\r\nContent-Type: image/png\r\n"

そして私は得る:

[paperclip] Saving attachments

DeviseとCancanを使用している他のアプリでは、まったく同じペーパークリップ設定を使用しています。

[paperclip] Saving attachments.

ただし、「写真」は保存されず、写真の属性が定義されることはまったくありません 。今、私は追加して解決される同様の投稿を見ました

attr_accessible photo

モデルに、そして私はそれをしました、そしてそれでもそれは機能していません。私はこれに多くの時間を浪費してきました、時々私はちょうど私自身の画像アップロードを作成するべきだったように感じます...

何か案が?どうも!

ところで。追加した単純なscaffoldオブジェクトで同じ問題

attr_accessible:photo

4

1 に答える 1

1

jQueryMobileのようなフレームワークまたはある種のAJAX/PJAXメカニズムを使用している場合、JSはローカルファイルを読み取ることができないため、アップロードはAjaxでPOSTとして失われます...

uploadifyのようなプラグインを使用するか、フォームを「通常の」方法で送信する必要があります。

編集:明確にするために、最も簡単な方法は、フォーム属性としてdata-ajax="false"を追加することです。Rails 3では、フォームヘルパーを使用して、これらの行に沿って何かを記述します。

<%= form_for (@my_object, html: {data: {ajax: false}}) do |f| %>
    ...
<% end %>
于 2012-05-12T20:25:36.663 に答える