2010-01-31 46 views
0

我有一個應用部署在使用postgres的heroku上。該應用程序不穩定...有時會起作用,有時會導致自定義500頁錯誤。它給人的錯誤應用部署到heroku不穩定

代碼:

def login 
    session[:user_id] = nil 
    if request.post? 
     if @user = User.authenticate(params[:user][:userid], params[:user][:password]) 
     session[:user_id] = @user.id 
       if @user.stores.length > 0 
      redirect_to(:controller => "admin", :action => "select_store") 
      else 
      redirect_to(:controller => "pages", :action => "mainpage") 
      end 
     else 
     flash.now[:notice] = "Invalid user/password combination" 
     end 
     end 
    end 

我的模型看起來像:

def self.authenticate(userid, password) 
    user = self.find_by_userid_and_password(userid, password) 
    user 
    end 

Heroku的日誌說:

ActiveRecord::StatementInvalid (PGError: ERROR: current transaction is aborted, commands ignored until end of transaction block 
: SELECT * FROM "users" WHERE ("users"."userid" = E'sampleuser' AND "users"."password" = E'12345') LIMIT 1): 
    app/models/user.rb:7:in `authenticate' 
    app/controllers/admin_controller.rb:6:in `login' 

,因爲它是一個間歇性錯誤,我不知道如何解決它。但是,有可能在頁面上顯示錯誤嗎?......是否有可能發現類似這樣的錯誤,然後繼續?這將是最好的解決辦法

回答

0

儘量讓定製發現:

def self.authenticate(userid, password) 
    user = self.find(:first, :conditions => {:userid => userid, :password =>password}) 
    user 
    end