Potrebujem vytvoriť systém, na ktorom môže používateľprihláste sa pomocou používateľského konta, kde je používateľ členom skupiny, ako je admin alebo editor. Používateľ je tiež členom spoločnosti. v oboch prípadoch skupín a spoločností môžu mať viacero používateľov, ale používateľ môže byť len členom jednej spoločnosti a viacerých skupín.
Vzťahy, z ktorých sa môžem dostať z toho je, že skupina má veľa používateľov, spoločnosť má veľa užívateľov, používateľ má jednu spoločnosť, používateľ má veľa skupín.
ale môj problém potom ako to môžem vytvoriť s rubínom a mongoMapperom? som sa pozrieť na dokumentáciu a iné zdroje, ale nenašiel dobré riešenie alebo vysvetlenie, ako používať alebo nastaviť to.
Ak má niekto lepší spôsob, ako to urobiť, tak aj víta.
to sú aktuálne triedy, ktoré som napísal.
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
odpovede:
0 pre odpoveď č. 1Po ďalšom vyhľadávaní pomocou google som našiel riešenie.
najskôr som urobil používateľskú triedu tak,
class User
include MongoMapper::Document
key :username, String
key :password, String
key :name, String
key :companyID
key :groupID
timestamps!
end
potom skupina a trieda spoločností takto:
class Company
include MongoMapper::Document
key :name, String
timestamps!
end
class Group
include MongoMapper::Document
key :name, String
key :accesLevel, Integer
timestamps!
end
S týmito triedami som sa zmenilregulátor najskôr vytvoriť spoločnosť a potom skupinu, ktorá by mohla byť tiež načítaná, ale kvôli ľahkému testovaniu nebolo nutné to robiť, aby som nemusel písať kód pre toto.
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