2009-05-12 6 views
1

J'ai une application rails qui fonctionne correctement dans Safari, Firefox et Opera. Toutefois, lorsque j'essaie de me connecter à partir d'Internet Explorer 6+, je suis redirigé vers la bonne page mais rien ne s'affiche. La source dit que tout est là, mais la page est juste vide. Quand je frappe rafraîchir tout fonctionne normalement. Quelqu'un at-il une expérience avec cela?Rails & reposful_authentication malheurs avec Internet Explorer (toutes les versions)


Code pertinent:

## contrôleur d'application

# Filters added to this controller apply to all controllers in the application. 
# Likewise, all the methods added will be available for all controllers. 

class ApplicationController < ActionController::Base 
    helper :all # include all helpers, all the time 
    layout 'public' 
    before_filter :presenter 

    include AuthenticatedSystem 
    # See ActionController::RequestForgeryProtection for details 
    # Uncomment the :secret if you're not using the cookie session store 
    protect_from_forgery :secret => 'secrete code' 

    # See ActionController::Base for details 
    # Uncomment this to filter the contents of submitted sensitive data parameters 
    # from your application log (in this case, all fields with names like "password"). 
    # filter_parameter_logging :password 

    def index 
    end 

    def terms 
    end 


    def contact 
    @contact = Contact.new 
    end 

    def send_contact_request 
    @contact = Contact.new(params['contact']) 

    if @contact.save 
    begin 
     UserMailer.deliver_contact_message(@contact) 
     flash[:notice] = @presenter.notify("notification", "Success!", "Your message has been delivered.") 
     redirect_to root_path 
    rescue 
     flash[:notice] = @presenter.notify("error", "Error!", "There was an error delivering your request.") 
     render :action=>"contact" 
    end 
    else 
     render :action=>"contact" 
    end 
    end 

    def schedule 
    @schedule = Schedule.new 
    end 

    def schedule_testing 
    @schedule = Schedule.new(params['schedule']) 

    if @schedule.save && @schedule.agreed? 
     UserMailer.deliver_testing_request(@schedule) 
     flash[:notice] = @presenter.notify("notification", "Success!", "Your request has been delivered.") 
     redirect_to root_path 
    else 
     flash[:notice] = @presenter.notify("error", "Error!", "There was an error delivering your request.") 
     render :action => "schedule" 
    end 
    end 

    protected 
    def presenter 
     @presenter = AdminPresenter.new(:param => current_user) 
    end 
end 

## contrôleur sessions

# This controller handles the login/logout function of the site. 
class SessionsController < ApplicationController 

    # Be sure to include AuthenticationSystem in Application Controller instead 
    include AuthenticatedSystem 

    layout 'public' 

    before_filter :presenter 

    # render new.rhtml 
    def new 
    end 

    def create 
    logout_keeping_session! 
    user = User.authenticate(params[:email], params[:password]) 
    if user 
     # Protects against session fixation attacks, causes request forgery 
     # protection if user resubmits an earlier form using back 
     # button. Uncomment if you understand the tradeoffs. 
     # reset_session 
     self.current_user = user 
     new_cookie_flag = (params[:remember_me] == "1") 
     handle_remember_cookie! new_cookie_flag 
     if user.password_changed?  
     redirect_back_or_default(admin_index_path) 
     flash[:notice] = @presenter.notify("notification", "Welcome!", "Logged in successfully.") 
     else 
     redirect_to edit_admin_user_path(user)   
     flash[:notice] = @presenter.notify("warning", "Welcome!", "Please change your password to something more memorable.") 
     end 
    else 
     note_failed_signin 
     @email  = params[:email] 
     @remember_me = params[:remember_me] 
     render :action => 'new' 
    end 
    end 

    def destroy 
    logout_killing_session! 
    redirect_to admin_index_path 
    flash.now[:notice] = @presenter.notify("notification", "Success!", "You have been logged out.") 
    end 

protected 
    # Track failed login attempts 
    def note_failed_signin 
    @email = params[:email] 
    flash[:notice] = @presenter.notify("error", "Error!", "Could not log you in as #{@email}.") 
    logger.warn "Failed login for '#{params[:email]}' from #{request.remote_ip} at #{Time.now.utc}" 
    end 

    def presenter 
     @presenter = AdminPresenter.new(:param => @map) 
    end 
end 

## réponse du journal pour IE

Processing SessionsController#create (for IP ADDY at 2009-05-12 14:44:57) [POST] 
    Session ID: fccb95ca6fd7a7730b7a585f1c8457a3 
    Parameters: {"commit"=>"Log in", "authenticity_token"=>"8a05db56dbd6e7116fb82e4f3fdb77df75383ede", "password"=>"secret", "email"=>"[email protected]"} 
Cookie set: auth_token=; path=/; expires=Thu, 01 Jan 1970 00:00:00 GMT 
    [4;36;1mUser Load (0.1ms)[0m [0;1mSELECT * FROM `users` WHERE (email = '[email protected]' and activated_at IS NOT NULL) LIMIT 1[0m 
    [4;35;1mSQL (0.0ms)[0m [0mBEGIN[0m 
    [4;36;1mSQL (0.0ms)[0m [0;1mCOMMIT[0m 
Cookie set: auth_token=; path=/ 
Redirected to /admin 
Completed in 1ms (DB: 0) | 302 Found [http://www.gessnerengineering.com/session] 


Processing AdminController#index (for IP ADDY at 2009-05-12 14:44:57) [GET] 
    Session ID: fccb95ca6fd7a7730b7a585f1c8457a3 
    [4;35;1mUser Load (0.0ms)[0m [0mSELECT * FROM `users` WHERE (`users`.`id` = 12) LIMIT 1[0m 
    [4;36;1mProfile Load (0.0ms)[0m [0;1mSELECT * FROM `profiles` WHERE (approved = 0) [0m 
    [4;35;1mProject Load (0.0ms)[0m [0mSELECT * FROM `projects` WHERE (approved = 0) [0m 
    [4;36;1mMap Load (0.0ms)[0m [0;1mSELECT * FROM `maps` WHERE (approved = 0) [0m 
    [4;35;1mProfile Load (0.0ms)[0m [0mSELECT * FROM `profiles` WHERE (score_approved = 0) [0m 
Rendering template within layouts/admin 
Rendering admin/index 
    [4;36;1mProfile Load (0.0ms)[0m [0;1mSELECT * FROM `profiles` WHERE (`profiles`.user_id = 12) LIMIT 1[0m 
    [4;35;1mRole Load (0.0ms)[0m [0mSELECT * FROM `roles` WHERE (`roles`.`id` = 1) [0m 
Rendered admin/users/_user_bar (0.1ms) 
    [4;36;1mCACHE (0.0ms)[0m [0;1mSELECT * FROM `roles` WHERE (`roles`.`id` = 1) [0m 
Completed in 3ms (View: 2, DB: 3) | 200 OK [http://www.gessnerengineering.com/admin] 

## log réponse pour Firefox

Processing SessionsController#create (for IP ADDY at 2009-05-12 14:46:57) [POST] 
    Session ID: 163aa367284e7734a17c545fcf85bc95 
    Parameters: {"commit"=>"Log in", "authenticity_token"=>"bc549a7f2ae4a937044db12e283c1af13e045b50", "password"=>"secret", "email"=>"[email protected]"} 
Cookie set: auth_token=; path=/; expires=Thu, 01 Jan 1970 00:00:00 GMT 
    [4;35;1mUser Load (0.1ms)[0m [0mSELECT * FROM `users` WHERE (email = '[email protected]' and activated_at IS NOT NULL) LIMIT 1[0m 
    [4;36;1mSQL (0.0ms)[0m [0;1mBEGIN[0m 
    [4;35;1mSQL (0.0ms)[0m [0mCOMMIT[0m 
Cookie set: auth_token=; path=/ 
Redirected to /admin 
Completed in 2ms (DB: 0) | 302 Found [http://www.gessnerengineering.com/session] 


Processing AdminController#index (for IP ADDY at 2009-05-12 14:46:57) [GET] 
    Session ID: 163aa367284e7734a17c545fcf85bc95 
    [4;36;1mUser Load (0.1ms)[0m [0;1mSELECT * FROM `users` WHERE (`users`.`id` = 12) LIMIT 1[0m 
    [4;35;1mProfile Load (0.0ms)[0m [0mSELECT * FROM `profiles` WHERE (approved = 0) [0m 
    [4;36;1mProject Load (0.0ms)[0m [0;1mSELECT * FROM `projects` WHERE (approved = 0) [0m 
    [4;35;1mMap Load (0.0ms)[0m [0mSELECT * FROM `maps` WHERE (approved = 0) [0m 
    [4;36;1mProfile Load (0.0ms)[0m [0;1mSELECT * FROM `profiles` WHERE (score_approved = 0) [0m 
Rendering template within layouts/admin 
Rendering admin/index 
    [4;35;1mProfile Load (0.0ms)[0m [0mSELECT * FROM `profiles` WHERE (`profiles`.user_id = 12) LIMIT 1[0m 
    [4;36;1mRole Load (0.0ms)[0m [0;1mSELECT * FROM `roles` WHERE (`roles`.`id` = 1) [0m 
Rendered admin/users/_user_bar (0.1ms) 
    [4;35;1mCACHE (0.0ms)[0m [0mSELECT * FROM `roles` WHERE (`roles`.`id` = 1) [0m 
Completed in 4ms (View: 2, DB: 3) | 200 OK [http://www.gessnerengineering.com/admin] 
+0

Pouvez-vous ajouter votre point de vue et CSS? Cela ressemble à un problème de rendu, pas à un problème de contrôleur. –

Répondre

1

Essayez de valider votre balisage (HTML) en utilisant quelque chose comme le W3 Schools Validator. L'IE est (de manière surprenante) plus stricte parfois avec le balisage, et parfois s'il ne peut pas le "comprendre", il bombarde et ne rendra pas les éléments. Le validateur peut parfois rechercher des balises non fermées et autres.

+1

Je trouve parfois que css invalide peut aussi causer des problèmes dans cette veine, donc ça vaut la peine de le valider - même si je trouve que safari est plus pointilleux avec des css invalides. – paulthenerd

+0

@paulsnotes: C'est un excellent point. J'ai certainement éprouvé des rendus vraiment aléatoires d'IE quand j'ai foiré un sélecteur. –

Questions connexes