Ruby on rails Rails远程数据库的委托模式?

Ruby on rails Rails远程数据库的委托模式?,ruby-on-rails,authorization,multiple-databases,Ruby On Rails,Authorization,Multiple Databases,我正在开发一个Rails应用程序,它需要基于角色的权限(让我们称之为“隐藏”应用程序),但该应用程序不会处理用户身份验证。主应用程序设置加密的cookie,而隐藏的应用程序将其用作身份验证的证据 隐藏的应用程序需要实现多种角色;管理员、项目经理、编辑等。我正在使用一个in,它创建一个角色表和一个users\u角色表,并使用在用户表和使用users\u角色表的角色表之间有许多关系。到目前为止都是香草味的 挑战在于主应用程序已经有了一个users表和一个users\u roles表。我有一个Main

我正在开发一个Rails应用程序,它需要基于角色的权限(让我们称之为“隐藏”应用程序),但该应用程序不会处理用户身份验证。主应用程序设置加密的cookie,而隐藏的应用程序将其用作身份验证的证据

隐藏的应用程序需要实现多种角色;管理员、项目经理、编辑等。我正在使用一个in,它创建一个
角色
表和一个
users\u角色
表,并使用
在用户表和使用
users\u角色
表的角色表之间有许多关系。到目前为止都是香草味的

挑战在于主应用程序已经有了一个
users
表和一个
users\u roles
表。我有一个Main::User模型,它使用主应用程序数据库(创建自定义连接),但是当试图通过创建角色来利用授权基础结构时,操作失败,因为ActiveRecord正在使用Main::User表中的连接信息,尝试更新主应用程序中的
users\u roles
表(这是不允许的)。我甚至尝试删除habtm规范,并使用has_many宏和:through选项来指定联接表,但ActiveRecord仍然使用主数据库,因为连接是通过Main::User模型建立的

下一步是实现Rails Recipe 15“连接到多个数据库”,但我缺少的部分是如何使我的本地参考模型UsersReference自动参考主应用程序的
users
表。配方中提到,“当然,这个解决方案需要在product_references表中创建必要的行,以匹配备用数据库中的任何产品。这可以批量完成 我宁愿不必维护双拷贝,因为有超过425000个用户,他们的状态随时都在变化,所以批量更新的想法不是很好


理想情况下,我希望配方中的UsersReference模型充当
users
表的委托。我想这将涉及在运行时自动从
users
表中获取行,如配方中所述。有没有人有这样或类似的经验?非常感谢您的想法。

到目前为止,我已经解决了这个问题,删除了用户引用模型,并在隐藏的应用程序中创建了一个用户模型。我已经定义了User.find_User,它检查用户ID是否在本地表中。如果不是,用户将从Main::User模型获取它并将其保存在本地。隐藏用户模型是用于授权的模型,它满足授权插件的需求。我最不想做的就是隐藏User.find方法,这样就不会意外调用它,但是创建self.find(*arg)并将其设置为受保护的或私有的方法不起作用——User.find仍然可以调用