response_to не работает с format.js, если присутствует format.html - PullRequest
0 голосов
/ 27 января 2011

При использовании respond_to мой вызов AJAX вызывает только ответ javascript, если ответ HTML отсутствует.

У меня есть следующий javascript для отправки действия редактирования на месте:

$(".eip").editable("/surveys", {
  name   : 'survey[name]',
  select : true,
  event  : 'edit',
  submit : 'Save',
  cancel : 'cancel',
  cssclass : "editable",
  onblur : 'ignore',
  onedit : function() { $(".eip_desc").hide(); },
  onreset : function() { $(".eip_desc").show(); },
  onsubmit : function() { $(".eip_desc").show(); }
});

Тогда у меня есть следующий метод Survey controller:

class SurveysController < ApplicationController
  def create
    @survey = Survey.new(params[:survey])    

    if @survey.save
      respond_to do |format|
        format.html { redirect_to surveys_path, :notice => "Survey created!" }
        format.js
      end
    else
      render :action => :new
    end
  end
end

Если я удаляю строку format.html, то format.js отвечает как следует. Но если я оставлю format.html там, то вся страница будет отображаться при отправке через этот editable бит javascript.

Я использую Rails 3.0.3 для этого приложения.

1 Ответ

1 голос
/ 27 января 2011

из документов

(String) метод: метод, используемый при отправка отредактированного контента. По умолчанию СООБЩЕНИЕ. Вы, скорее всего, хотите использовать POST или PUT. Метод PUT совместим с Рельсы.

попробуй пройти метод: "поставить"

...