/ / Užívateľský vzťah k skupine a spoločnosti MongoMapper - ruby, mongodb, mongomapper, databáza

Užívateľský vzťah k skupine a spoločnosti MongoMapper - ruby, mongodb, mongomapper, databáza

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ď č. 1

Po ď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