2016-04-22 4 views
0

新しいレコード(railsのデフォルトの新しいアクション)を作成するとき、オブジェクトIDはnil b/cであり、dbに固定されていません。新しいオブジェクトのためにRailsがアップロードする

オブジェクトをアップロードするとき、通常、それらはid(paperclipを使用)に関連付けられます。

ユーザーがnewをクリックしたときに、ajaxアップロード用のdropzone.js領域を提供したい場合は、idがない場合にその画像/ファイルを投稿オブジェクトに結びつけるにはどうすればよいですか?

彼らは破棄するか、ブラウザを終了すると、私は孤立していた一時画像/ファイル...

私は新しいレコードのオブジェクトのアップロードの間にドットを接続トラブルを抱えています。

誰かがこのためにコントローラロジックを手助けできますか?オブジェクトを作成した後ではなく、別のアクションでかなり簡単に行うことができます。

答えて

2

私はこの種の問題を解決するために宝石を作った。 ペーパークリップの上で動作し、は侵入していません。この機能を有効にするには、ペーパークリップのhas_attached_filehas_attached_uploadに置き換える必要があります。

Rails Pallet gem ... を使用してください。POST /uploadsfile属性を実行するサーバーにファイルをアップロードする必要があります。応答は、識別子をそのファイルに関連付けるでしょう。 次に、識別子を送信すると、自分のレコードを更新できます。その後、宝石はあなたのレコードにファイルをコピーします。

このようにして、ファイルをアップロードしてから、のレコードを保存することができます。

あなたは、宝石のREADME

+0

素晴らしいの完全な例を見ることができます。私はそれを調べます。あなたはペーパークリップの交換品として刷新するために全く話すことができますか? –

+0

もこのレール5に対応していますか? –

+0

これはペーパークリップの補完であり、交換用ではありません。 'has_attached_file'を' has_attached_upload'で置き換えるのは、必要なモデルだけです。私はRails 5、Rails 4.2でしかテストしなかった。 – Leantraxxx

関連する問題