According to the documentation for observe_field the :update parameter is not required. However if this is not supplied then the generated FormObserver does not supply parameters when submitting the request.
Assuming we have the following routes supplied
map.resources :users, :collection => [:validate => :post]
If we are using rjs to respond to this action, we don't want to supply an :update parameter, so we use the following;
<%= observe_form :user_form, :url => validate_users_path, :frequency => 2 %>
The javascript generated is the following; which does not work as no parameters are posted
//<![CDATA[
new Form.Observer('user_form', 2, function(element, value) {new Ajax.Request('/users;validate', {asynchronous:true, evalScripts:true})})
//]]>
The correct javascript would in fact be;
//<![CDATA[
new Form.Observer('user_form', 2, function(element, value) {new Ajax.Request('/users;validate', {asynchronous:true, evalScripts:true, parameters:value})})
//]]>
This can be resolved by changing the call to observe_form to;
<%= observe_form :user_form, :url => validate_users_path, :frequency => 2, :update = {} %>
With the included patch this hack is not required.
This fixes the defect raised in #5271, and may also be related to #6662 and #6553