[Ajax] link_to remote with method POST or DELETE

Hi! I'm developing a test application, just to experiment a little bit
with ajax. Right now I only have a Company model with the attributes
name:string, description:text and voted:boolean. What I'm trying to do
is: in company#index show a "vote" link to vote a company; after the
company has been voted the link should be replaced by an "unvote" link
to unvote it and so on (after unvoting replace with "vote", etc.).
From what I have read so far I expect the following code to work just
fine:

## app/controllers/companies_controller.rb
class CompaniesController < ApplicationController
  before_filter :retrieve_company, :only => [:vote, :unvote]

  def index
    @companies = Company.all
  end

  def vote
    @company.update_attributes :voted => true
  end

  def unvote
    @company.update_attributes :voted => false
    respond_to do |format|
      format.js { render "vote" }
    end
  end

  private
    def retrieve_company
      @company = Company.find(params[:id])
    end
end

## app/helpers/companies_helper.rb
module CompaniesHelper
  def vote_link_for(company)
    if company.voted?
      link_to "Unvote", unvote_company_path(company), :id =>
"vote_link", :remote => true, :method => "delete"
    else
      link_to "Vote", vote_company_path(company), :id => "vote_link",
:remote => true, :method => "post"
    end
  end
end

## app/views/companies/vote.js.erb
$("#vote_link").html("<%= vote_link_for(@company) %>")

## app/views/companies/_company.html.haml
%tr
  %td= company.name
  %td= company.description
  %td= vote_link_for(company)

## config/routes.rb
[...]
root :to => "companies#index"
resources :companies do
  member do
    post :vote
    delete :unvote
  end
end

The problem is that the server receives GET requests instead of POST and
DELETE:

Started GET "/companies/1/vote" for 127.0.0.1 at 2011-03-06 22:27:37
+0100

So I receive a Routing Error because I don't have any GET route for
:vote and :unvote.
What am I doing wrong?

Thanks for your time and help.

Hi! I'm developing a test application, just to experiment a little bit
with ajax. Right now I only have a Company model with the attributes
name:string, description:text and voted:boolean. What I'm trying to do
is: in company#index show a "vote" link to vote a company; after the
company has been voted the link should be replaced by an "unvote" link
to unvote it and so on (after unvoting replace with "vote", etc.).
From what I have read so far I expect the following code to work just
fine:

Is your page loading the appropriate version of rails.js

Frederick Cheung wrote in post #985822:

Is your page loading the appropriate version of rails.js

I think so. I'm using the jquery-ujs one and the produced output of my
page's head is:

<script
src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"
type="text/javascript"></script>
<script src="/javascripts/rails.js?1299441487"
type="text/javascript"></script>
<meta name="csrf-param" content="authenticity_token"/>
<meta name="csrf-token"
content="mkOZ4niIW7oNzBZuuc11VWzdsO21HINFpjLg+EyPUOY="/>

So it looks like everything should be fine.

Did you overwrite rails.js when installing jquery-ujs? (see
https://github.com/rails/jquery-ujs "Installation")