Если у вас есть модель Color
, например:
# == Schema Information
#
# Table name: colors
#
# id :integer not null, primary key
# created_at :datetime not null
# updated_at :datetime not null
#
class Color < ApplicationRecord
has_many :color_sectors
has_many :sectors, through: :color_sectors
end
И модель Sector
, например:
# == Schema Information
#
# Table name: sectors
#
# id :integer not null, primary key
# created_at :datetime not null
# updated_at :datetime not null
#
class Sector < ApplicationRecord
has_many :color_sectors
has_many :colors, through: :color_sectors
end
Затем вы создаете модель ColorSector
, например:
# == Schema Information
#
# Table name: color_sectors
#
# id :integer not null, primary key
# color_id :integer
# sector_id :integer
# created_at :datetime not null
# updated_at :datetime not null
#
class ColorSector < ApplicationRecord
belongs_to :color
belongs_to :sector
end
И когда у вас есть @color
и вы хотите получить все связанные Sector
записи, вы можете сделать:
@color.sectors
И когда у вас есть @sector
и вы хотите получить все связанные Color
записи, вы можете сделать:
@sector.colors
Если вы хотите связать @color
с @sector
, то вы делаете:
@sector.colors << @color
Все это подробно описано в документах .