У меня проблема при создании моделей. У меня есть 3 модели в приложении Rails.
Первая модель - Event.
class Event < ApplicationRecord
has_many :items
has_many :situations
end
Модель Event содержит поля: id, date, team
.
Второй класс - Предметы
class Item < ApplicationRecord
belongs_to :event
has_many :situations
end
Модель товара содержит поля: event_id, ratio, kind, attr_1, attr_3
с данными.
Третий класс - Ситуации
class Situations < ApplicationRecord
belongs_to :event
has_many :items
end
Модель ситуации содержит поля: event_id, first_item_id, second_item_id, third_item_id, percent
Мне нужно создать 3 внешних ключа (first_item_id, second_item_id, third_item_id
), которые будут ссылаться нак первичному ключу в модели изделия.
Я попробовал этот код, а затем набрал Item.joins(:situations)
, и он не работает:
class Item < ApplicationRecord
belongs_to :event
has_many :situations, class_name: 'Situation', foreign_key: ['first_item_id',
'second_item_id', 'third_item_id']
end
Обновление
Например:
Situations table:
id event_id first_item_id second_item_id third_item_id percent
1 1001 2323 2324 2325 3%
2 1001 2323 2525 2525
Event table:
id date team
1001 02/10/2019 'Chicago - New York'
Item table:
id event_id ratio kind attr_1 att_3
2323 1001 2.3 test 12 15
2323 1001 7.7 next 52 55
2324 1001 8.7 nsext 5 18
2325 1001 1.1 ext 4 58
и я хочу получить 2 большие строки с данными со всеми полями из таблицы событий, предметов и ситуаций после выполнения Item.joins (: ситуация).