Используя отношение has_and_belongs_to_many, я имею следующее:
model A
has_and_belongs_to_many :B, :join_table => "A_B"
has_and_belongs_to_many :C, :join_table => "A_B"
table A_B
A_id
B_id
C_id
Текущее поведение:
при выполнении A.save я получаю 2 оператора вставки в таблицу A_B - A_id установлен, B_id, установлен, и C_id = 0, а другой, где все только A_id и C_id установлены (нет B_id в инструкции INSERT).Поэтому в моей таблице JOIN есть 2 строки
Желаемое поведение:
при выполнении A.save, я хочу 1 INSERT в таблицу A_B, где все 3 идентификатора установлены правильно.
Как мне это сделать?
Насколько я понимаю (поскольку у меня нет прав на изменение наследства базы данных), я не могу использовать has_many: through для этого, поскольку для таблицы JOIN потребуется столбец id.Если это не так, я открыт для любых предложений.