ajax を実装しようとすると、「406 Not Acceptable in 13ms (ActiveRecord: 0.6ms)」というエラーが発生します。respond_to
コードは、ブロックなしで通常の html で機能します。問題をブロックに絞り込みましたが、respond_to
今は困惑しています。同じエラーの SO と Google の他のソリューションはどれも適用または機能していないようです。
respond_to
html のみまたは ajax/js が含まれているかどうかにかかわらず、ブロックを使用すると 406 エラーが発生する原因は何ですか?- 406エラーを修正するには?
- 以下のコードに示すように、ブロック内で使用
redirect_to
しても問題ありませんか?respond_to
format.html
さらに情報が必要な場合はお知らせください。
ビュー (haml):
通常のhtmlコード
%div.control-group.controls
= button_to "Delete Gcal User", @gcal_user, method: :delete, class: "btn btn-danger"
AJAX コード
%div.control-group.controls
= button_to "Delete Gcal User", @gcal_user, method: :delete, remote: true, class: "btn btn-danger"
AJAX 用の JS コード (coffeescript)
$('#calendar').empty();
コントローラ:
class GcalUsersController < ApplicationController
def destroy
@gcal_user = current_user.gcal_user
# if @gcal_user.delete
# flash[:notice] = "#{@gcal_user.username} deleted"
# end
# redirect_to user_root_path # <-- using this in html mode, app works i.e. no 406 error
respond_to do |format|
format.html { redirect_to(user_root_path) } # <-- using this in html mode instead of above line, app fails i.e. 406 error
# format.js # <-- using this in ajax mode, app fails i.e. 406 error
end
end
end