Has_and_belongs_to_many附加条件

时间:2016-11-08 10:29:29

标签: ruby-on-rails activerecord

我有实体:流程和用户。他们有多对多的关系。但是可以按用户的不同角色分配用户:admin和owner(或两者),并在链接表中使用布尔列。

这是我的结构:

PROCESSES
    id
    name

USERS
    id
    email

PROCESSES_USERS
    id
    process_id: FK
    user_id: FK
    admin: Boolean
    owner: Boolean

有没有办法在布尔标志中使用条件为这些模型建立两个不同的has_and_belongs_to_many关联? 我想这样使用它:

process = Process.find(1)
process.owners.size
process.admins.size

# Maybe even joins
Process.joins(:owners).includes(:owners)

有没有办法做到这一点?