0

我需要创建一个系统,用户可以使用用户帐户登录,其中用户是管理员或编辑器等组的成员。用户也是公司的成员。在组和公司的两种情况下,他们可以有多个用户,但用户只能是一个公司和多个组的成员。

我可以从中得到的关系是一个组有很多用户,公司有很多用户,用户有一个公司,用户有很多组。

但我的问题是如何用 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
4

1 回答 1

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
于 2013-04-22T14:36:23.903 回答