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| %>
<p style="color: red"><%= flash[:error] %></p>
  <%= f.label :email %><br />
  <%= f.text_field :email %><br />
  <br />
  <%= f.label :password %><br />
  <%= f.password_field :password %><br />
  <br />
  <%= f.submit "Login" %>
<% end %>

The rendered form in HTML starts with:

<form action="/user_sessions" class="new_user_session" id="new_user_session"
method="post"><div style="margin:0;padding:0;display:inline"><input name="
authenticity_token" type="hidden" value="..." /></div>

... 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:in
`main_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:in
`spawn_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:in
`spawn_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:in
`spawn_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:in
`__send__'
  /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:in
`start_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




-- 
-------------------------
Sudarshan Purohit
My Blog : http://connectionmachine.blogspot.com
-------------------------

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en.

Reply via email to