In 3.0.9 and below, form_for() could accept a :remote option passed in either options or options[:html]. However, any :remote option passed in as options[:html][:remote] will now be ignored because of this line:
options[:html][:remote] = options.delete(:remote)
This seems especially arbitrary since the point of that line is to set options[:html][:remote] = options[:remote]. Furthermore, other methods such as link_to allow the :remote option to be passed in the same hash as other html options. After all, it is just shorthand for the data-remote html attribute.
I believe the following logic should be used instead:
options[:html][:remote] = options.delete(:remote) if options.has_key?(:remote)
I'd be glad to prepare a pull request if others agree.
fixed problem in which options[:html][:remote] would be overridden in…
… form_for() - fixes #2094
I've resolved this in #2095
added test case for fix to issue #2094