2015-09-03 4 views
0

Я хочу, чтобы загрузить пользовательский аватар (carrierwave), используя пользовательское действие так:Response для формы с пользовательскими действиями с использованием Ajax

= form_for user, url: update_user_avatar_path(id: user.id), :html => {:class => "up-cl-ava-form", data: {type: :json}, novalidate: true, method: :put}, remote: true do |f| 
     = f.file_field :avatar_picture 
     = f.submit "Update", remote: true 

В UsersController

def update_user_avatar 
    @user = User.find(params[:id]) || current_user 
    respond_to do |format| 
     if @user.update_attributes!(avatar_picture: params[:user][:avatar_picture]) 
     format.json { render json: {}, status: :ok} 
     else 
     format.json { render json: {}, status: :unprocessable_entity} 
     end 
    end 
    end 

Params in #update_user_avatar

{ "utf8" => "✓", "_method" => "положить", "authenticity_token" => "BPGeN5mpRCYwIco1YSsBx6IT7MfIBOdSlwS9Y5WJZeU =", "пользователь" => { "avatar_picture" => #>}, " совершить "=>" Обновить», "ID"=> "30", "действие"=> "update_user_avatar", "контроллер"=> "пользователи"}

запрос

.... "CONTENT_TYPE" => "multipart/form-data; граница = ---- WebKitFormBoundaryvz51HFYrromiuTS7" ....

В моей JS

$(document).ready(function(){ 
    $(".up-cl-ava-form").on("ajax:success", function(){ 
     alert("success") 
    }); 

    }); 

Проблема здесь состоит в том, что изображение правильно загружена, но сайт перенаправляет lvh.me : 3000/update_user_avatar ID = 30 (пустая страница), вместо пребывания в одной и той же точки зрения

ответ

Смежные вопросы