[rails]関連(1対多)
所有しているテーブル側のモデルにhas_many
所属している側のモデルにbelongs_toを設定する。
例:schoolsテーブルが、studentsテーブルを所有(studentsテーブルは、schoolsテーブルに所属)している場合。
schoolsテーブルのカラム
id,name
studentsテーブルのカラム
id,school_id,name
赤字の部分(所有する側のテーブル名の単数形+"_id")をカラムとして定義する。
そして、schoolsのモデルは以下のように記述
class School < ActiveRecord::Base
has_meny :students
end
ここで、相手の関連名は「複数形」にしておく。
students側はこう
class Studnet < ActiveRecord::Base
belogns_to :school
end
これで、schools側のコントローラ等で"students"の名前でstudentsテーブルを参照できるし、
students側からは"school"の名前でschoolテーブルを参照できるようになる。
« ひなまつり (今日のテーマ) | トップページ | ミシン (今日のテーマ) »
「ruby/rails」カテゴリの記事
- acts_as_paranoid(2008.04.01)
- ActiveScaffoldで表示するレコードを設定する(2008.03.31)
- ActiveCalendarの入力フォーマットを変える(2008.03.24)
- ActiveScaffoldListFilters(2008.03.21)
- Activescaffoldでdate/datetimeをカレンダーで入力する(2008.03.21)
コメント