在阅读RailsGuides后,我在此处和其他文档中的一些答案仍然对如何建立这种关系感到困惑。
考虑存在对象的模型用户和组,其中用户可以是组的普通成员或具有管理权限(创建组,邀请用户,删除用户,删除组)我希望两个对象都有两个 - 彼此之间有许多关系。
这会起作用吗?
class User < ActiveRecord::Base
has_many :managedGroups, :class_name => "Group", :foreign_key => "managingUsers"
has_many :memberOfGroups, :class_name => "Group", :foreign_key => "userMembers"
end
class Group < ActiveRecord::Base
has_many :managingUsers, :class_name => "User", :foreign_key => "managedGroups"
has_many :userMembers, :class_name => "User", :foreign_key => "memberOfGroups"
end
我在指南中找到了如何使用scaffold生成模型对象,这对我很好,我只想为POST和GET创建一个基本的Web服务。如果以上是正确的,它应该像使用脚手架创建模型一样简单,然后编辑以包含显示的行?
答案 0 :(得分:3)
一些问题:
这将是一个很好的起点:
class User < ActiveRecord::Base
has_many :users_groups
has_many :groups, :through => :users_groups
end
class Group < ActiveRecord::Base
has_many :users_groups
has_many :users, :through => :users_groups
end
class UsersGroup < ActiveRecord::Base # will be the users_groups table
belongs_to :user
belongs_to :group
end
class Permission < ActiveRecord::Base
belongs_to :user
belongs_to :group
validate_presence_of :name # The name of the permission e.g. "manage"
end