1

我有两个表usersproviders并且有 has_and_belongs_to_many 关系。除了和之外,连接表providers_users还有一个额外的列。uiduser_idprovider_id

如何添加由和组成users.id的新记录?我可以添加,但不知道如何添加.providers.iduidusers.idproviders.iduid

4

1 回答 1

6

你不能。如果要给join table添加属性,需要make成模型,然后在relationships上使用:through来达到同样的效果(这其实是我最喜欢的habtm关系实现方式):

class ProviderUser < ActiveRecord::Base
  belongs_to :user
  belongs_to :provider

  validates_presence_of :uid
end

class User < ActiveRecord::Base
  has_many :provider_users
  has_many :providers, :through=>:provider_users
end

class Provider < ActiveRecord::Base
  has_many :provider_users
  has_many :users, :through=>:provider_users
end
于 2012-05-19T23:31:48.237 回答