Rails多对多的关系

时间:2014-02-26 05:59:31

标签: ruby-on-rails ruby activerecord

这可能很简单,但我不确定这是否可行。问题是关于group.rb模型,如果模型的have_many可能通过另一个模型而不存在。谢谢你的帮助。

# app/models/user.rb
class User < ActiveRecord::Base
  has_many :admin_groups
  has_many :groups
end

# app/models/group.rb
class Group < ActiveRecord::Base
  has_many :admin_groups
  has_many :admins, through: :admin_groups
end

# app/models/admin_group.rb
class AdminGroup < ActiveRecord::Base
  belongs_to :group
  belongs_to :admin, class_name: "User", foreign_key: "user_id"
end

2 个答案:

答案 0 :(得分:2)

,这完全有效。

有关详细信息,请参阅guides

答案 1 :(得分:1)

您可以通过您选择的名称引用关联的模型,并使用“class_name”选项将该引用名称与您自己的代码中显示的实际模型相关联,是的,您可以将(has_many,through)与模型关联起来使用'class_name'选项时只引用名称。

按照以下2个链接@

guide1

guide2