2011-02-05 3 views
2

Я пытаюсь обновить запись удаленно (через ajax) и получить ответ, который включает в себя сериализованную запись, но я постоянно получаю xhr.responseText = {}. Я хотел бы получить сериализованную версию обновленной записи.Rails response_with неправильно работает с json

Вот мой взгляд форма ...

=semantic_form_for theme, :html => {'data-type' => 'json', :id => :theme_display_type_form, :remote => true} do |form| 
    -form.inputs do 
     =form.input :display_type 

контроллер, который обрабатывает ...

respond_to :html, :json 

... other actions... 

def update 
    flash[:success] = "Theme was successfully updated" if theme.update_attributes params[:theme] 
    respond_with(theme) 
end 

, а затем ответ пойманы rails.js АЯКС: успех событие

$('#theme_display_type_form').bind('ajax:success', function(evt, data, status, xhr){ 
    var responseObject = $.parseJSON(xhr.responseText); 
    alert(xhr.responseText); // = {} 
    alert(responseObject); // = null 
}); 

Должно быть, что-то не хватает. Может ли кто-нибудь сообщить мне, что я делаю неправильно?


EDIT

Похоже, что может быть возникли проблемы с 'respond_with', как с использованием старого метода respond_to в мой контроллер работает правильно ...

def update 
    flash[:success] = "Theme was successfully updated" if theme.update_attributes params[:theme] 
    respond_to do |format| 
     format.json { render :json => theme } 
    end 
end 

У кого-нибудь есть идеи, почему response_with не работает должным образом?


ОТВЕТ

согласно маяка размещения на https://rails.lighthouseapp.com/projects/8994/tickets/5199-respond_with-returns-on-put-and-delete-verb

это нормально, что UPDATE будет возвращать не объект, так как у вас уже есть объект в вашем распоряжении ..

ответ

0

У меня проблемы с response_with, но response_to работает правильно.

Я вижу его в POST (create). Кажется, что response_with работает иногда ...

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