Ruby on Rails两个模型之间有多对多的关系

时间:2012-06-02 17:47:46

标签: ruby-on-rails ruby database migration

我有两个关系m:n类型,用于将表Users与表Videos相关联。我通过这些行命令创建它:

rails generate migration users_comments_videos
rails generate migration users_views_videos

在文件user.rb和videos.rb中,我分别添加了说明:

has_and_belongs_to_many :users
has_and_belongs_to_many :videos

这两条指令对我创建的两种关系都有效吗?

1 个答案:

答案 0 :(得分:2)

选择不同的关联名称,然后指定模型。

user.rb

class User
  has_many :comments
  has_many :views
  has_many :comment_videos, :through => :comments, :source => 'Video'
  has_many :view_videos, :through => :views, :source => 'Video'
end

video.rb

class Video
  has_many :comments
  has_many :views
  has_many :comment_users, :through => :comments, :source => 'User'
  has_many :view_users, :through => :views, :source => 'User'
end