2010-07-30 61 views
0

我執行以下命令,使模型:如何採取ActiveRecord關聯到DB

script/generate model user firstname:string lastname:string 

script/generate song group songname:string songtitle:string 

一個user has_many :songs並在此之後一個song belongs_to :user

我跑rake db:migrate然而,協會並不進行到我的實際數據庫。因爲在我的實際數據庫中,我沒有在songs table ...等中看到任何user_id列。

我們是否必須手動更改遷移並添加所需的列?

回答

0

據我所知,您需要明確將user_id添加到遷移文件或生成模型時。現在我知道的一種方式,其檢測協會,並創建從生成線至少用戶密鑰:

我相信你的選擇是:

script/generate song group songname:string songtitle:string user_id:integer 

或者在遷移 - 加入這您的遷移文件:

t.integer :user_id 

或者也將其添加到您的遷移文件。我不相信你可以從命令行執行此操作。在songs.rb模型中創建belongs_to :user關聯後,您需要執行此操作。

t.references :user 

作爲一個說明,我通常採取第二個選項。

另一個只是在一般的ruby/rails約定 - 通常屬性名稱是小寫字母,並用下劃線分隔。所以song_name而不是songname。這完全是一種有趣的事情,並且由您決定如何實施。

我希望這有助於!