7

2 つの has_attached_files を持つモデルの 2 つの Paperclip 添付ファイルを含むフォーム (Rails 3.2.8、Paperclip 3.1.4) があります。1 つはイメージ、もう 1 つは一般的なファイル (通常は .zip ファイル) です。

.zip ファイルをアップロードしようとしない限り、すべて正常に動作します。任意のサイズの .zip ファイル (元は 80 MB でしたが、サイズの問題かどうかを確認するために 3 MB を試しました) をアップロードすると、フォームは PUT ではなく POST になり、Rails はルーティング エラーをスローします。

フォーム メソッドは POST ですが、Rails の hidden _method 値が「put」に設定されています。これは正常に機能し、.zip ファイルをアップロードしようとしていないときに PUT が発生します。

フォームには enctype 'multipart' ビットが正しく設定されています。

何がこれを引き起こしているのでしょうか?

4

1 に答える 1

1

ファイルが大きく聞こえます。実際のパラメーターがリクエストに含まれていることを再確認してください。ファイルのサイズに応じて、ローカルでもこれを取得します。

私が見た効果は、レールは基本的にパラメーターを取得しないということです。PUT は実際には非表示の要素を持つ投稿であるため、パラメーターがドロップされるため、レールは POST のみを認識します。

何がこれを引き起こしているのか、実際にはわかりません。おそらくローカルのウェブサーバーだと思いますので、nginx などの設定が必要かもしれません。これはherokuなどでは決して起こりませんが、ファイルが十分に大きい場合は常にローカルで発生します。

また、webrick の要求ペイロードのサイズは非常に小さいことに注意してください。だから、それを使用しないでください。非常に簡単に交換できるため、「薄い」を使用してください。

于 2013-07-08T10:32:44.653 に答える