Form always submitting requests using GET

Dear all,
[Apologies for a rather newbie question]. I have been seeing some
rather
weird behaviour with my Rails setup (2.3.5) since yesterday. I installed
AuthLogic for authentication, and tested a basic login page with it on
my
development machine; it ran fine. On my production Linux server, though,
submitting the login form doesn’t work right - Rails sees the POST
request
as a GET request and so tries to display the wrong page.

The sessions are handled in the user_sessions class, with the following
added to the routing:

map.login “login”, :controller => “user_sessions”, :action => “new”
map.logout “logout”, :controller => “user_sessions”, :action =>
“destroy”
map.resources :user_sessions

The relevant sections in the user_sessions_controller are:

def new
@user_session = UserSession.new
end

def create
@user_session = UserSession.new(params[:user_session])
if @user_session.save
flash[:notice] = “Login successful!”
uri = session[:original_uri] #This was set in the authorize
method
that’s called using a :before_filter
session[:original_uri] = nil
redirect_to(uri || root_url)
else
flash[:error] = “Incorrect Email/Password!”
render :action => :new
end
end

The user_sessions/new form is:

<% form_for @user_session do |f| %>

<%= flash[:error] %>

<%= f.label :email %>
<%= f.text_field :email %>

<%= f.label :password %>
<%= f.password_field :password %>

<%= f.submit "Login" %> <% end %>

The rendered form in HTML starts with:

… which is as expected, with the method set to POST.

And all this works fine on the development machine. I get this in the
log:

Processing UserSessionsController#create (for 127.0.0.1 at 2010-10-08
19:05:20) [POST]
Parameters: {“commit”=>“Login”, “user_session”=>{
“password”=>“precisely”,
“email”=>“[email protected]”},
“authenticity_token”=>“x1agQNW4O3qtP7L3ifif6Ih4/jP/pWDP73QM4DD7gS4=”}

On production, though, submitting the email/password shows this in the
log
file:

Processing UserSessionsController#index (for 122.179.58.136 at
2010-10-08
18:37:04) [GET]
ActionController::UnknownAction (No action responded to index. Actions:
available_languages, convert_date, create, current_language, destroy,
and
new):
/opt/passenger-2.2.15/lib/phusion_passenger/rack/request_handler.rb:92:in
process_request' /opt/passenger-2.2.15/lib/phusion_passenger/abstract_request_handler.rb:207:inmain_loop’
/opt/passenger-2.2.15/lib/phusion_passenger/rack/application_spawner.rb:120:in
run' /opt/passenger-2.2.15/lib/phusion_passenger/rack/application_spawner.rb:65:inspawn_application’
/opt/passenger-2.2.15/lib/phusion_passenger/utils.rb:252:in
safe_fork' /opt/passenger-2.2.15/lib/phusion_passenger/rack/application_spawner.rb:58:inspawn_application’
/opt/passenger-2.2.15/lib/phusion_passenger/rack/application_spawner.rb:41:in
spawn_application' /opt/passenger-2.2.15/lib/phusion_passenger/spawn_manager.rb:150:inspawn_application’
/opt/passenger-2.2.15/lib/phusion_passenger/spawn_manager.rb:278:in
handle_spawn_application' /opt/passenger-2.2.15/lib/phusion_passenger/abstract_server.rb:352:insend
/opt/passenger-2.2.15/lib/phusion_passenger/abstract_server.rb:352:in
main_loop' /opt/passenger-2.2.15/lib/phusion_passenger/abstract_server.rb:196:instart_synchronously’

Rendering /www/apps/releases/20101008104549/public/404.html (404 Not
Found)

Note the [GET] - I see a POST in the same position on my development
machine, and it calls the create action as expected. No matter what I
do, I
can’t get the form on the production server to return a POST request.
Has
anyone any insights into this? Any help will be much appreciated.

Thanks,
Sudarshan