2010-07-23 32 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