Unable to make observe_field work

I can't make it work.

<%= text_field_tag :friend %>

<%= observe_field :friend, :url => friendships_url, :on => :click %>

<%= javascript_include_tag :defaults %>

Raises the error:Can't find variable Form.

The generated html is:

<input id="friend" name="friend" type="text" />

<script type=“text/javascript”>
new Form.Element.EventObserver(‘friend’, function(element, value) {new
Ajax.Request(‘http://mysite.com/friendships’, {asynchronous:true,
evalScripts:true, parameters:value + ‘&authenticity_token=’ +


<%= javascript_include_tag :defaults %>

Should appear BEFORE the:

<%= observe_field :friend, :url => friendships_url, :on => :click %>

It's usually placed at your page's <header> section.

Just to save people 1hr of head banging:

This DOES NOT WORK: (data is submitted to ApplicationController/index!!!
<%= observe_field :friendship_accessibility, :url =>
:on => :click, :with => :accessibility %>

This works: (all options are compulsory)
<%= observe_field :friendship_accessibility,
:url => {:controller => 'friendships', :action => 'update', :id =>
:on => :click, :with => :accessibility, :method => :update %>

Is that a bug? Why can't the observe_field and Rails routing mechanism
recognize the restful route?

You don't have an :update specified on the parameters for
observe_field. Assuming you don't want to render anything, do a
render :nothing=>true in the controller.