无法在Rails应用程序中解决错误

时间:2013-05-02 06:36:28

标签: ruby-on-rails ruby

我正在创建一个用户登录Oracle数据库并运行准备好的查询的应用程序。我想使用ActiveRecord帮助运行查询,但我遇到了一些问题。

当用户尝试登录时,我通过运行

来测试连接
def test (username, password)
ActiveRecord::Base.establish_connection({
    :adapter => 'oracle_enhanced',
    :database => '//database:1521/test',
    :username => username,
    :password => password
})
end

但是,如果用户输入了错误的登录信息,我会收到以下错误:

OCIError

ORA-01017: invalid username/password; logon denied
在rails页面上

。当我尝试重新加载登录页面时,它会一直显示该错误并且不显示实际的登录页面。删除此错误的唯一方法是重新启动整个rails应用程序。

这是因为我尝试建立与其他数据库的连接,但是它失败了,它不知道该怎么办?有什么办法可以防止这种情况发生吗?

1 个答案:

答案 0 :(得分:2)

之前我也遇到过这个问题。要测试数据库连接,不应使用ActiveRecord :: Base,因为它会影响整个应用程序,但您应该创建一个抽象类。这是代码:

class DbConnectionTest < ActiveRecord::Base
  @abstract_class = true
end

然后你只需使用自定义类:

DbConnectionTest.establish_connection({})