1

Rails プロジェクトで AJAX 経由で画像をアップロードするためにRemotipartを使用しています。画像のアップロードは Rails コントローラーによって処理され、正常に動作します。

ただし、フォームは複数のステップからなるフォームであり、画像のアップロードは最初のステップにすぎません。ビューでレンダリングされた画像をアップロードした後、必要なのは、画像がアップロードされた場合は次のステップに進むことですが、その方法がわかりません。AJAX応答を待っていると、これを機能させることさえできません:

$(document).ready (e) ->
  $("form").bind "ajax:complete", (e, data, status, error) ->
    if data.status is 200 or data.status is 201
      alert 'yum'

私のコントローラーは次のようになります。

def upload
  if request.post?
    dir = "/img/" + current_user.slug + "/pictures/queue/"
    ndir = dir + view_context.random_s(10) + '.jpg'
    File.rename(params[:file].tempfile, "public" + ndir)
    render :text => "$('#picture #photo').html('<img src=\"#{ndir}\">');"
  end
end

しかし、私が言ったように、この部分はうまく機能します。

render :textイベントハンドラーをフォームに追加するか、コントローラーで使用するだけでそれを行うことができると思いますが、それは良いことではありません。

これについてSOでいくつかの回答を見ましたが、誰も機能しません。

4

0 に答える 0