9

jQuery-File-UploadとCarrierwaveまたはDragonflyを使用して、複数の画像を追加するための投稿を作成するときに1つのページで機能を作成するソリューションがないことに気付きました。1つの投稿に多くの画像を含む2つのモデルがあります。追加した直後に画像をアップロードし、まったく新しい投稿を保存する前にキャンセルするオプションがあります。私のコードは機能していないので、ここに貼り付けませんでした。おそらく誰かが例を持っています。この概念がjQuery-File-Uploadでまったく実行可能かどうか。複数の写真を保存してブートストラップビューを維持する他の方法がない場合はどうでしょうか。期待される機能に似ていますが、Upladify:FormFlyまたはCarrierwaveとnested_form:carrierwave-nested_formのみを使用した素晴らしい例を見つけました。jQuery-ファイル-gitwikiのアップロードRailsの1つのモデルでのみ使用する方法のチュートリアルです。

私はこのようなものを手に入れたいです: ここに画像の説明を入力してください

4

2 に答える 2

11

これらすべての主な問題は、「存在しないオブジェクトとの関連付けをどのように作成できるか」という質問です。。まあ、できません。あなたができることは、次善の策です。その方法を3つの簡単なステップで説明します。プロセス自体はかなり明確であり、さまざまなアプローチ(jQuery-File-UploadおよびCarrierwaveまたはDragonflyに限定されない)に適用できる必要があるため、意図的にコードを投稿していません。

ステップ1

関係の各部分を通常どおりに個別に設定します。新しい投稿を生成するには、足場(またはその他)を使用します。投稿のフォームのすぐ下に、通常どおり写真アップロードソリューションを実装します。通常どおり、各オブジェクトの独自のコントローラーとパーシャルを使用して、これらのものが消えないように混ざり合うのを防ぎます。まだ関係関連付けコードについて心配する必要はありません。

ステップ2

モデルに関係コードを追加します。まだ、インターフェースがそれらを適切に関連付けていないことを心配する必要はありません。

ステップ3 (楽しい部分)

さて、それをすべて一緒に結びます。作成中の画像がありますが、どの投稿にも属していません。また、画像なしで投稿が作成されています。この関連付けを完了するには、何らかの方法が必要です。解決策はかなり簡単です。投稿に関連付ける画像のIDを含めるには、投稿フォームに非表示のテキストフィールドを作成する必要があります。次に、画像作成の応答で、新しい画像をページに追加すると同時に、新しい画像のIDをテキストフィールドに追加します。同様に、ポストコントローラでは、非表示フィールドからIDをループし、保存する前にターゲットオブジェクトを関連付けるだけです。画像がページから削除されたときに配列からIDを削除するなど、キャンセルボタンに同様のロジックを追加することをお勧めします。

于 2012-09-18T23:15:18.047 に答える
3

私は、carrierwaveを使用してRailsでJqueryFileUploadを使用してマルチブル画像をアップロードする小さな例を見つけました。

私は現在、JqueryFileUploadを使用して複数のファイルのアップロードを緩和するためのより良いソリューションに取り組んでいますが、このトピックはそれほど簡単ではありません。

この例では

pictures_controllerの新しいアクションで新しい投稿オブジェクトのインスタンスを設定するときにbody:stringを使用して投稿スキャフォールドを生成し、pictures/新しいビューで投稿のフォームを実装できます。

<%= form_for(@post) do |f| %>
  <div class="field">
    <%= f.label :body %><br />
    <%= f.text_field :body %>
  </div>
  <div class="actions">
    <%= f.submit %>
  </div>
<% end %>
于 2012-09-10T13:21:09.897 に答える