平衡点


2006/08/02

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

解決. 中間テーブルを使って, 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

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

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

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

_ RSS が更新されてません

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

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

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


連絡先など
最近の日記
  • 2024/10/09
    • 1. Mastodon でのメール通知, というか Exim4 と Apparmor
  • 2024/06/19
    • 1. WSL2 での gpg-agent, ssh-agent
  • 2024/06/18
    • 1. WSL で Windows 側のフォントを利用する
  • 2024/06/17
    • 1. WSLとWindowsの時刻同期
  • 2024/06/12
    • 1. wsl2 で systemd
    • 2. wslg の設定
一覧
2006|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|02|03|04|08|09|10|11|12|
2013|01|02|03|04|05|06|08|09|10|11|12|
2014|01|02|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|09|10|
2016|02|03|
2017|01|02|03|05|06|07|09|11|12|
2018|03|06|07|10|11|12|
2019|01|02|03|04|05|07|10|12|
2020|01|02|03|04|05|08|09|10|11|12|
2021|01|02|03|05|06|07|08|09|11|12|
2022|01|02|03|04|05|06|08|10|11|12|
2023|02|03|04|06|08|09|11|12|
2024|01|02|03|04|05|06|10|
Back to Top ▲