拦截ActiveRecord的establish_connection初始化过程

时间:2010-11-18 14:37:14

标签: ruby-on-rails ruby postgresql activerecord

我使用Postgresql作为我的数据库,使用rails 3作为我的中间件,用于多租户应用程序。

我想为通过establish_connection方法创建的每个连接设置一个包含当前登录客户端ID的环境变量。

无论如何,我可以通过任何一个setup_connection回调来拦截初始化过程来设置这个环境变量吗?

1 个答案:

答案 0 :(得分:1)

我倾向于通过类似权限级别的字段来分离应用程序级别的数据。然后,您可以将“verify_permission(current_user)”方法作为before_filter运行。

我们通常会执行此操作并使用“kick_user_out”方法自动强制使用非敏感参数注销和通过电子邮件发送管理警报,以便在发生权限升级时向管理员发出警报。你得到足够的,帐户也会被锁定。