我需要创建一个系统,用户可以使用用户帐户登录系统,其中用户是管理员或编辑者等组的成员。用户也是公司的成员。在群组和公司的情况下,他们可以拥有多个用户,但用户只能是一个公司和多个群组的成员。
我可以得出的关系是,一个群体有很多用户,公司有很多用户,用户有一个公司,用户有很多群体。但我的问题是如何使用ruby和mongoMapper创建这个?我查看了文档和其他来源,但没有找到关于如何使用或设置它的良好解决方案或解释。
如果有人有更好的方式,也欢迎。
这些是我写的当前课程。
class User
include MongoMapper::Document
key :username, String
key :password, String
key :name, String
belongs_to :group
belongs_to :company
end
class Group
include MongoMapper::Document
key :group_id, Integer
key :name, String
key :accesLevel, Integer
many :user
end
class Company
include MongoMapper::Document
key :name, String
many :user
end
答案 0 :(得分:0)
经过一些谷歌搜索,我找到了解决方案。
首先我让用户类看起来像这样:
class User
include MongoMapper::Document
key :username, String
key :password, String
key :name, String
key :companyID
key :groupID
timestamps!
end
然后小组和公司类就像这样:
class Company
include MongoMapper::Document
key :name, String
timestamps!
end
class Group
include MongoMapper::Document
key :name, String
key :accesLevel, Integer
timestamps!
end
有了这些类,我改变了我的控制器,首先创建了一个公司,然后是一个组,这些也可以加载但是为了便于测试,没有必要这样做,所以我不需要编写代码对此。
company = Company.new
company.name = "comp"
group = Group.new
group.name = "admin"
user = User.new
user.name = "user1"
user.username = "user1"
user.password = "passuser1"
user.groupID = group.id
user.companyID = company.id
db_config = YAML::load(File.open('./dbconfig.yml'))
MongoMapper.connection = Mongo::Connection.new(db_config['hostname'])
MongoMapper.database = db_config['name']
company.save
group.save
user.save