を使用する場合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を実行しています。