应用部署到heroku不稳定
问题描述:
我有一个应用部署在使用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'
,因为它是一个间歇性错误,我不知道如何解决它。但是,有可能在页面上显示错误吗?......是否有可能发现类似这样的错误,然后继续?这将是最好的解决办法
答
尽量让定制发现:
def self.authenticate(userid, password)
user = self.find(:first, :conditions => {:userid => userid, :password =>password})
user
end