如何将其他数据添加到has_and_belongs_to_many关系的连接表中?

时间:2012-05-19 01:25:54

标签: ruby-on-rails-3 has-and-belongs-to-many

我有两个表usersproviders,它们具有has_and_belongs_to_many关系。除了providers_usersuid之外,联接表user_id还有一个额外的列provider_id

如何添加由users.idproviders.iduid组成的新记录?我可以添加users.idproviders.id,但无法弄清楚如何添加uid

1 个答案:

答案 0 :(得分:6)

你做不到。如果要将属性添加到连接表,则需要进入模型,然后使用:通过关系来实现相同的事情(这实际上是我最喜欢的实现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