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

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs