Active Record で「子(「1対多」の「多」)」から「親(「1対多」の「1」)」のレコードを取得する

前提

アソシエーションは設定済みとします。

テーブル構成

以下のようなテーブル構成とします。User が「親(「1対多」の「1」)」で、Article が「子(「多対1」の「1」)」です。

User

  • id
  • name
  • created_at
  • updated_at

Article

  • id
  • user_id
  • content
  • created_at
  • updated_at

「子」から「親」を取得する

以下のようにすれば「子」から「親」を取得できます。ここで「子」のレコードは「content が『こんにちは。』」となっているレコードとします。そしてそのレコードは複数個あるとします。

[1] pry(main)> child_records = Article.where(content: 'こんにちは。') # 複数のレコードが得られる
[2] pry(main)> child_records[0].user.name #=> child_records[0] に結び付けられている User の name が得られる
Powered by はてなブログ