我是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))”在控制器中给出错误。有没有办法从应用程序控制器建立新的数据库连接。等待解决方案,提前谢谢。
答案 0 :(得分:2)
我得到了一个解决方案,我们可以从控制器创建新的数据库:
MongoMapper.database = "my_db"
如果已经创建了它,那么它将切换到" my_db"数据库,否则它将创建新的数据库并切换到该数据库。
答案 1 :(得分:0)
您可能想要查看aparment gem:
Apartment提供了一些工具来帮助您处理Rails应用程序中的多个租户。如果您需要根据帐户或公司隔离某些数据,但仍允许某些数据存在于共同租户中,则公寓可以提供帮助。
创建新用户时,您可以致电:
Apartment::Tenant.create('tenant_name')
当用户登录时,切换该用户的数据库:
Apartment::Tenant.switch!('tenant_name')
甚至适用于子域名。