我是Rails的新手,我從Django的背景來看它。我已經認識到模型和數據庫模式在Rails的在線Django中是分開的。不過,我仍然在處理遷移問題。Rails 3:belongs_to,has_one和Migrations
我的問題很簡單 - 我如何使用遷移向模型添加關係?例如,我有Artist
和Song
作爲目前子類ActiveRecord::Base
的空模型,沒有任何關係。
我需要移動到這樣做:
class Artist < ActiveRecord::Base
has_many :songs
end
class Song < ActiveRecord::Base
belongs_to :artist
end
但是我怎麼更改架構,以反映此使用rails g migrate
?我正在使用Rails 3.1.3。
好的 - 以及如果它是現有的表,我需要使用除create_table之外的其他東西嗎? –
在這種情況下,你可以使用'add_column:songs,:artist_id,:int',或者如果你想對你的表進行一些修改,就像上面的語法一樣。你可以在這裏閱讀更多關於遷移的內容:http://guides.rubyonrails.org/migrations.html – rabusmar
謝謝。我使用了'change_table',但現在當我在ActiveAdmin中選擇「歌曲」時,我得到'沒有這樣的列:artists.song_id'。我做錯了什麼?該專欄不應該存在,因爲藝術家可以有許多歌曲... –