多側から1側のデータを取得する
class Company < ApplicationRecord has_many :employees end
class Employee < ApplicationRecord belongs_to :company end
<% @employees.each do |employee| %> <div><%= employee.company['name'] %></div> <% end %>
この例では1側をcompany、多側をemployeeとしてリレーションを設定し、Employeeモデルのデータから紐づいたCompanyモデルのnameフィールドのデータを取得しています。
また、Employeeモデルのマイグレーションファイルでは
としてcompanyフィールドをリレーション用のフィールドにしています。
コントローラーでは@employeeにEmployee.allを代入してください。
1側のデータ取得時は、
の形式で記入してください。
また、Employeeモデルのマイグレーションファイルでは
class CreateEmployees < ActiveRecord::Migration[7.1]
def change
create_table :employees do |t|
t.text :name, null: false
t.references :company, null: false, foreign_key: true
t.timestamps
end
end
end
def change
create_table :employees do |t|
t.text :name, null: false
t.references :company, null: false, foreign_key: true
t.timestamps
end
end
end
としてcompanyフィールドをリレーション用のフィールドにしています。
コントローラーでは@employeeにEmployee.allを代入してください。
1側のデータ取得時は、
モデル.リレーションのフィールド['取得したいフィールド']
の形式で記入してください。