Я нашел способ обойти это в своем приложении Flex on Rails. Я видел ту же проблему в IE - мой файл development.log в Rails дал сообщение 201, но это вызвало ошибку, возвращающуюся во Flex. Я нашел ссылку в новой книге Тони Хиллерсона и Даниэля Ванджи под названием Flex On Rails на стр. 31. Он включает в себя обнаружение ошибки 201 и изменение заголовка. Вот мой файл ApplicationController:
class ApplicationController < ActionController::Base
helper :all # include all helpers, all the time
include AuthenticatedSystem
before_filter :login_required
after_filter :flex_error_handling
def flex_error_handling
response.headers['Status'] = interpret_status(200) if response.headers['Status'] == interpret_status(422)
response.headers['Status'] = interpret_status(200) if response.headers['Status'] == interpret_status(201)
end
def rescue_action_in_public(exception)
render_exception(exception)
end
def rescue_action_locally(exception)
render_exception(exception)
end
rescue_from ActiveRecord::RecordNotFound, :with => :render_exception
def render_exception(exception)
render :text => "<errors><error>#{exception}</error></errors>", :status => 200
end
end
Действие по изменению сообщения о состоянии 422 на 200 было частью первоначальных предложений Хиллермана / Ванджи по превращению ошибки потока 2032 в нечто более дружественное, чтобы недопустимые ошибки записи отправлялись обратно в интерфейс пользователя Flex.