我正在使用Rails 3并且希望无论何时创建用户,都应该为新创建的用户创建单独的数据库。
例如,如果我的应用程序中有13个迁移,那么应该为新创建的用户创建13个表。
我如何才能实现此功能?
答案 0 :(得分:0)
在Rails中处理许多数据库是一个非常糟糕的主意!
您可以在每个需要分离的表中添加一个字段,例如user_id
,然后将default_scope
应用于各自的模型(或使用{{1}创建一个抽象模型通过default_scope
并继承你的“可共享”模型。)
您可能会猜到,self.abstract_class = true
应该是这样的:
default_scope
如何获得当前用户,您可能会问?
模型无法访问default_scope lambda { where(user_id: current_user_id) }
,因此您可以进行以下“黑客攻击”以使您的范围有效:
session
我猜你有这个主意。
答案 1 :(得分:0)
这是我关注的最佳帖子并解决我的问题
http://7fff.com/2010/12/02/activerecord-dropcreate-database-run-migrations-outside-of-rails/
答案 2 :(得分:0)
同时查看詹姆斯幻灯片http://www.confreaks.com/videos/889-railsconf2012-ten-things-you-didn-t-know-rails-could-do附带的音频/视频。对于每个数据库一个用户的部分,请前进到15:30左右。