每个帐户创建不同的数据库

时间:2016-05-09 11:40:13

标签: ruby-on-rails mongodb

我是ruby on rails的新手。我正在使用mongomapper,我想为每个帐户创建单个数据库。假设如果用户将登录,则新数据库将使用登录用户的用户名创建,如果已创建,则将切换到该数据库。 我正在尝试使用模型中的以下代码: class User include MongoMapper::Document include ActionView::Helpers connection(Mongo::Connection.new('localhost', 27017)) set_database_name "#{current_user.username} key :name, String key :email, String, :required => true key :username, String, :required => true, :unique => true end

但我没有收到用户名。如果我把这个代码“连接(Mongo :: Connection.new('localhost',27017))”在控制器中给出错误。有没有办法从应用程序控制器建立新的数据库连接。等待解决方案,提前谢谢。

2 个答案:

答案 0 :(得分:2)

我得到了一个解决方案,我们可以从控制器创建新的数据库:

MongoMapper.database = "my_db"

如果已经创建了它,那么它将切换到" my_db"数据库,否则它将创建新的数据库并切换到该数据库。

答案 1 :(得分:0)

您可能想要查看aparment gem:

  

Apartment提供了一些工具来帮助您处理Rails应用程序中的多个租户。如果您需要根据帐户或公司隔离某些数据,但仍允许某些数据存在于共同租户中,则公寓可以提供帮助。

创建新用户时,您可以致电:

Apartment::Tenant.create('tenant_name')

当用户登录时,切换该用户的数据库:

Apartment::Tenant.switch!('tenant_name')

甚至适用于子域名。