0
我有很多很多:通过一组类之间的关系,就像这样:唯一的关联:通过
class Company
has_many :shares
has_many :users, :through => :shares, :uniq => true
end
class User
has_many :shares
has_many :companys, :through => :shares, uniq => true
end
class Share
belongs_to :company
belongs_to :user
end
我要确保一个独特的关系,以便用户只能在任何一个一股公司,这正是我试图用“uniq”的说法实现的。
起初我以为这是工作,但它似乎行为操作系统的“uniq”是筛选记录的选择,而不是pre-INSERT,所以我仍然在数据库中得到重复的记录,这成为一个问题如果我想直接开始处理:shares关联,那么调用user.shares会返回重复记录(如果存在)。
任何人都可以帮助一种方法,这将迫使真正的uniq关系?所以如果我尝试添加用户和公司之间的第二种关系,它会拒绝它,只保留原来的?