我有许多用户在许多帖子中具有不同的角色。这些角色是owner
, editor
, viewer
, none
。每个用户可能只有一个帖子角色。我将其表示为在 Rails 中有许多直通关系,如下所示:
class User < ActiveRecord::Base
has_many :roles
has_many :posts, :through => :roles
end
class Post < ActiveRecord::Base
has_many :roles
has_many :users, through => :roles
end
class Role < ActiveRecord::Base
attr_accessor :role
belongs_to :users
belongs_to :posts
end
其中角色属性用于指示用户在帖子中拥有的角色类型。设置新角色时,我不能简单地使用<<
运算符,因为它不会设置role
属性。处理这种情况的首选方法是什么?如何强制每个用户/帖子组合只有一个角色并在我的Role
创建逻辑中强制执行?