railsでデータベースのテーブルに外部制約、CASCADE DELETEをつけたい場合は、 Gemfileにforeignerをつけてmigrateするか、SQLを手で作らないといけないらしい。
参考URL http://d.hatena.ne.jp/iriya_0624/20130427/1367082310
注意点として、 rake db:migrate:reset した場合、migrateファイルは日付時刻の古い順に実行されるので、外部キーのテーブルがないと 外部キーを追加するSQLの実行でエラーになる。
foreigner使ってみたけど、外部制約のカラム名がidから変更できなくて、動かないので、 SQLで直打ちで対応しました。 しかし、railsってこんなめんどくさいのかあ。
デフォルトの主キー名がidなの違和感あるなあ。 規約大事なら、{テーブル名}_idが主キーじゃないのか?