私は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を使用しています。
OK - それが既存のテーブルの場合は、 'create_table'以外のものを使用する必要がありますか? –
この場合、 'add_column:songs、:artist_id、:int'を使うこともできますし、上記のような構文でテーブル' change_table'をいくつか変更したい場合もあります。移行の詳細については、http://guides.rubyonrails.org/migrations.html – rabusmar
をご覧ください。私は 'change_table'を使用しましたが、ActiveAdminの" Songs "に行くと、' no such column:artists.song_id'が表示されます。私は何か間違ったことをした?アーティストが多くの曲を持つことができるので、その列は存在してはいけません。 –