2010-07-23 63 views
1

所以我刚刚开始使用Rails,现在正在查看HABTM。我正在阅读DHH书,我看到他有两个模型,即文章和用户。他们有HABTM关系。不过,我想知道是否需要为我自己创建articles_users模型的单独迁移,还是Rails会为我做这件事?关联用户和文章

如果是这样,如果我创建一个新用户并将其与文章相关联会发生什么? Rails会立即知道要在articles_users表中输入什么内容?

例:

u = User.new(:name => "John"); 
a = Article.new(:title =>"Rails"); 

#can我做到这一点?

a.user << u 

#will rails会自动在articles_users表内创建一个条目吗?

我对Rails在制作表格给我们或什么时候停止的地方感到困惑。

回答

3

您将需要通过迁移手动创建表格。但是,大多数轨道开发人员现在更喜欢Has Many Through而不是HABTM。另一个好处是,当您生成“加入模型”时,导轨将为您进行移植!

+0

你能给我一个刚刚提到的加入模型的script/generate命令的例子吗? – denniss 2010-07-23 03:51:09

+1

尝试:脚本/生成模型articles_users article_id:整数user_id:整数 – Brian 2010-07-23 03:56:27

+0

布赖恩是正确的。使用HMT的另一个好处是您有一个完整的模型,您可以稍后添加方法或更多属性。 – 2010-07-23 03:57:35