Ruby Rails:将线程中的会话信息传递给Oracle数据库连接

时间:2018-01-08 20:35:30

标签: ruby-on-rails oracle

我们的应用程序在会话中保存用户ID,我们需要将其传递给oracle连接,以便每次用户操作都可以在oracle中记录用户ID。这需要按照要求完成。我们使用的OCI8 gem有一个我们可以设置的client_identifier属性。我们只需知道如何以及在何处。

我们可以在应用程序控制器中的方法中访问线程数据库连接(在before_filter中触发),如果我们这样做,连接是否会公开其适配器的方法和/或属性?这些属性是否会通过后续的ping或sql操作传递?

这样的事情:

ActiveRecord :: Base.connection.client_identifier = session [:user]

也许?

由于

1 个答案:

答案 0 :(得分:0)

看起来我们需要获取原始连接,这允许我们在应用程序控制器中的before过滤器中设置客户端ID。有点像这样:

的ActiveRecord :: Base.connection.raw_connection.client_identifier = USER_ID