平衡点


2006/08/02

_ n:n のリレーションシップ[Computer

解決. 中間テーブルを使って, has_and_belongs_to_many().

例えば papers と authors のリレーションを作成したい, とする.

  • paper には複数の author がいる(場合もある).
  • author は沢山 paper を書いている(…場合もある).

この場合, migration は

def self.up
  creata_table(:authors_papers, :id=>false) do |table|
    table.column(:author_id, :integer)
    table.column(:paper_id, :integer)
  end
end

def self.down
  drop_table(:authors_papers)
end

みたいにして. primary_key は author_id と paper_id から一意に決まるので不要. あると id を上書きして祟るので, false にしておく.

あとは

# app/models/paper.rb
class Paper < ActiveRecord::Base
  has_and_belongs_to_many(:authors)
end

# app/models/author.rb
class Author < ActiveRecord::Base
  has_and_belongs_to_many(:papers)
end

でリレーションが完成. paper.authors や author.papers では配列が返されるようになる.

あとは view の設定だけかな. 楽だわー Rails.

_ ライド・オン・Rails[Book

購入してました. 巷に出た Rails 本は全て購入した事になりますね(馬鹿).

AWS との連携も書いてあったりして便利です. この本

ライド・オン・Rails Ruby on Railsを徹底攻略 ライド・オン・Rails Ruby on Railsを徹底攻略
吉田 和弘, ソフトバンククリエイティブ

_ RSS が更新されてません

何故だらう. まあ困らないけど, ちょっと困る.

…気のせいだった模様. なんだそれ.

…このタイトルだと, 流行の「東スポメソッド」だな(笑)


連絡先など
portrait
最近の日記
一覧
Back to Top ▲