0

を使用する場合respond_to、AJAX呼び出しは、HTML応答が存在しない場合にのみjavascript応答を呼び出します。

その場で編集アクションを送信するための次の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コントローラーメソッドがあります。

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応答します。しかし、そこに残しておくと、そのjavascriptビットformat.htmlを介して送信するとページ全体がレンダリングされます。editable

このアプリではRails3.0.3を実行しています。

4

1 に答える 1

1

ドキュメントから

(文字列) method: 編集したコンテンツを送信するときに使用するメソッド。デフォルトは POST です。ほとんどの場合、POST または PUT を使用します。PUT メソッドは Rails と互換性があります。

メソッドを渡してみてください: "put"

于 2011-01-27T20:45:28.303 に答える