2

私は最近、Jquery ファイルのアップロードに関する Ryan のエピソード 381 を見ましたが、ネストされたフォームのサポートを追加する方法を知りたいと思っています。私は製品を持っていて、製品には多くの画像があるとします。ポリモーフィックな関連付けなしでこれを追加するにはどうすればよいですか?

4

1 に答える 1

0

あなたが何を求めているのか、またはポリモーフィックな関連付けがこれと関係があるのか​​ は明確ではありませんが、同じ問題が発生した可能性があると思います(代わりにpluploadを使用しました)

私の解決策は、短いランダムな文字列を生成し (私は を使用SecureRandom.hex(6)しましたが、他にも方法があるはずです)、製品フォーム ビューに含めることでした。フォームの非表示フィールドとして、また JavaScript 変数として含めました。

<%= javascript_tag do %>
  window.tmp_id = "<%= tmp_id %>"
<% end %>

私のplupload構成では、この変数を画像をアップロードするPOSTリクエストに追加しました。jQueryファイルのアップロードの場合、次のようなものが必要だと思います:

$('#fileupload').fileupload({
  url: '/path/to/upload/handler',
  formData: { tmp_id: tmp_id }
});

そのため、ファイルのアップロードを処理するコントローラーでは、ファイルを取得して、params 経由で渡された tmp_id を使用して名前を付けた一時ディレクトリに貼り付けます。

コントローラーはフォーム送信を受信すると、モデルを使用して一時ディレクトリの存在を確認し、そこにある画像を処理して、新しく作成された製品に関連付けられた各レコードの新しいレコードを作成します。

まさにあなたが探しているものではないかもしれませんが、それはあなたにいくつかのアイデアを与えるかもしれないと考えました.

于 2012-12-11T07:36:03.783 に答える