为什么不在连接模型本身中包含确认状态?因此,让我们假设您有一个 User、一个 Group 模型,并且它们由 Membership 模型连接。将格式为 DateTime 的属性“accepted_on”添加到 Membership 模型(或者如果您不关心它们何时被接受,则只是一个布尔值。)然后创建一个视图,列出仅对管理员可见的所有成员资格,并带有一个链接只有他们可以访问将“accepted_on”属性设置为Time.current
.
在您的用户/组模型中,您可以执行以下操作:
class User < ActiveRecord::Base
has_many :memberships, :conditions => 'accepted_on IS NOT NULL'
has_many :groups, :through => :memberships
end
class Group < ActiveRecord::Base
has_many :memberships, :conditions => 'accepted_on IS NOT NULL'
has_many :users, :through => :memberships
end
class Membership < ActiveRecord::Base
belongs_to :user
belongs_to :group
end
这样,当一个新用户添加一个成员时,它在管理员接受他之前不会变为可用(也就是说,将 accept_on 设置为 nil 以外的任何内容。)