Я пытаюсь обновить запись удаленно (через ajax) и получить ответ, содержащий сериализованную запись, но я постоянно получаю xhr.responseText = {}.Я хотел бы получить сериализованную версию обновленной записи.
Вот моя форма просмотра ...
=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 ajax: событие успеха
$('#theme_display_type_form').bind('ajax:success', function(evt, data, status, xhr){
var responseObject = $.parseJSON(xhr.responseText);
alert(xhr.responseText); // = {}
alert(responseObject); // = null
});
Я должен что-то упустить.Может кто-нибудь сообщить мне, что я делаю неправильно?
РЕДАКТИРОВАТЬ
Похоже, у меня может быть проблема с ' response_with ', поскольку использование старого метода response_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 не работает должным образом?1028 *
в соответствии с публикацией маяка на https://rails.lighthouseapp.com/projects/8994/tickets/5199-respond_with-returns-on-put-and-delete-verb
это нормально, что ОБНОВЛЕНИЕ не вернет никакого объекта, так как у вас уже есть объект в вашем распоряжении ..