2012-06-02 59 views
3

我有两个关系m:n类型,它链接一个表Users与一个表Videos。我被这些线命令创建它:Ruby on Rails两个模型之间多对多关系

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

请'has_and_belongs_to_many'代替'had_and_belongs_to_many'是的,都是有效的。 –

+0

Ciao Giacomo,sei nuovo con Rails? fa comodo sapere chec'èuna persona inpiùnellacomunitàRails italiana ;-)无论如何,这有什么问题?你只是想知道你是否写了正确的代码? – mdesantis

+0

Ciao,si con Rails sono nuovo,mapiùlo sto studiandopiùmi sta piacendo ... for the question in english ...是的,我想知道这个... –

回答

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 
+0

评论和意见不是表格或实体,而是关系。在e/r模型的映射中,关系m:n类型注释和关系视图变成表格。例如,评论的迁移文件是这个类UsersCommentsVideos false do | t | t.column:USER_ID,:整数 t.column:VIDEO_ID,:整数 t.column:文本,:字符串 t.column:datecreationtext,:日期时间 t.timestamps 结束.... –

+0

我有编辑了答案,展示了如何在两个模型之间建立多个多对多关系。 – Anil

+0

非常感谢!我尝试 –