我在这里遇到问题,我不知道如何处理在多对多关系中关联3个表的关系
我有3个模型(组件,组,权限)
组授权许多组件,组件可能被许多组授权
权限可以分配给许多组,而组具有许多权限
因此,每个(组件,组)和权限之间应该存在一对多关系 使一个组拥有一个组件的一个权限
所以我构造了一个components_groups_permissions表{component_id,group_id,permission_id}
组件模型
has_many :groups, through: :components_groups_permissions
has_many :permissions, through: :components_groups_permissions
has_many :components_groups_permissions
群组模型
has_many :components, through: :components_groups_permissions
has_many :permissions, through: :components_groups_permissions
has_many :components_groups_permissions
许可模式
has_many :components, through: :components_groups_permissions
has_many :groups, through: :components_groups_permissions
has_many :components_groups_permissions
ComponentsGroupsPermission Model
belongs_to :component
belongs_to :group
belongs_to :permission
如何通过此关系添加记录或检索记录
编辑: 我的组件像目录 权限,如allow_to_rename,allow_to_delete
答案 0 :(得分:0)
假设您要查找属于特定组件的所有componentsgroupspermissions
。以下是您如何查询它:
Component.find(:id).componentsgroupspermissions