在我们的Rails 3.1.0应用程序,我们希望访问基于用户凭据多个数据库。有多种解决方案。一种是为每个用户安装一个应用程序,每个应用程序只能访问一个数据库。问题是,如果有很多的数据库(如几百个),将有同等数量的应用程序的安装。维护大量的应用程序可能是一件麻烦事。另一种方法是访问应用程序内的多个数据库。然而这种方法在rails 3.1.0中似乎不太受支持。肯定会有应用程序中的代码来决定访问对谁只是登录用户的数据库。有人可以提供有关approache的优点和缺点的解决方案和见解?非常感谢。如何访问多个数据库中轨3.1.0应用程序?
4
A
回答
5
你应该能够使用ActiveRecord::Base.establish_connection
动态连接到你喜欢的一定范围内的任何数据库。你如何实现这个完全是特定于应用程序的,但Rails确实具有这种能力。
这里是一个非常牵强的例子:
class User
def books
ActiveRecord::Base.establish_connection(
:adapter => "mysql",
:host => "localhost",
:username => self.username,
:password => self.password,
:database => self.database
)
Book.all
rescue Exception => e
# ...
end
end
你会想要做某个地方实际的错误处理,可能建立连接的实例方法之外,但一切由你来决定。
3
的apartment gem可能正是你要寻找的:
公寓提供的工具可帮助您应对 Rails应用程序的多个数据库。如果你需要有一个基于帐户或公司的某些数据隔离 ,但仍允许一些数据在 常见的数据库存在,公寓可以提供帮助。
相关问题
- 1. 如何让多轨应用程序访问本地postgreSQL数据库
- 2. ActiveRecord 3.1.0多个数据库
- 3. 从多个应用程序访问Cloudant数据库
- 4. 多个应用程序可以访问SQLite数据库吗?
- 5. 来自多个应用程序的数据库访问
- 6. 访问相同数据库的多个Grails应用程序
- 7. 如何从另一个应用程序访问django数据库
- 8. Android应用程序如何访问集中式数据库
- 9. 如何从Jquery Mobile应用程序访问远程数据库?
- 10. 如何从iPhone应用程序访问远程MySql数据库
- 11. 如何将数据从一个Android应用程序的数据库访问到另一个应用程序?
- 12. Rails 3.2.8 - 在单个Rails应用程序中访问多个数据库
- 13. 在一个iphone应用程序中访问多个sqlite数据库?
- 14. 从另一个应用程序访问一个应用程序的数据库
- 15. 如何在node.js中访问整个应用程序中的数据库连接?
- 16. 如何在django应用程序中使用多个数据库
- 17. 如何从移动应用程序访问WordPress数据库?
- 18. 如何与应用程序访问本地SQLite数据库
- 19. 我如何从Spotify应用程序访问我的数据库
- 20. 如何从Android应用程序访问Oracle数据库。
- 21. 如何从iPhone应用程序访问Xcode数据库
- 22. 如何让JPA应用程序访问不同的数据库?
- 23. 如何从ASP.NET应用程序访问数据库?
- 24. 如何让WPF应用程序访问在线数据库?
- 25. 如何处理用户访问可以访问多个数据库的应用程序
- 26. 在单轨应用程序中使用两个neo4j数据库
- 27. 如何从单个Web应用程序访问两个不同的数据库
- 28. 限制Firebase数据库访问一个Android应用程序
- 29. 从两个不同的应用程序访问数据库
- 30. 这个应用程序访问什么类型的数据库?