ajaxを介して既存の質問を編集するフォームをレールで作成しています。
フォームが送信され、質問が更新された後、コントローラーの update メソッドが update.js.erb をレンダリングし、フォームが再び非表示になります。
私の問題は、update.js.erb の JavaScript コードがまったく実行されていないことです。
サーバー出力に表示されるため、ファイルがレンダリングされていることがわかります。
<% raise params %>
それに、それは動作します。
ただし、最も単純なものでも
alert('hello');
同じファイルでは効果がありません。
同じコードが edit.js.erb ファイルで完全に機能するため、javascript と jquery の構成の問題を除外しました。update.js.erb では機能しません。
私は何が欠けていますか?
編集:
Firebug はエラーを表示しません。firebug のネットワーク パネルでの応答は次のとおりです。
alert('hello');
$('#question_body').replaceWith('<h4><p>jhsdfjhdsb k jdfs j fjfhds <strong>jfshaflksd;hf sdldfs l fdsalkhdfskhdfs</strong>;fd lfdksh hfdjaadfhsjladfhsjadfs ;df sjldfsj dfas hafdsj fdas ;ldfas ldfs df dl;hdf fdh ;fdj ;lfads</p></h4>');
デフォルト更新
編集2:
これはコントローラーのアクションです。
def update
respond_to do |format|
if @question.update_attributes(params[:question])
format.html { redirect_to @question, :flash => { :success => 'Question was successfully updated.' } }
format.json { head :no_content }
format.js {}
else
format.html { render action: "edit" }
format.json { render json: @question.errors, status: :unprocessable_entity }
end
end
end