Relação simétrica, auto-referencial HABTM


No meu esquema, tenho um modelo chamado Imprintables. Neste modelo, tenho esse relacionamento auto-referencial:

class Imprintable < ActiveRecord::Base
  has_and_belongs_to_many :coordinates, class_name: 'Imprintable', association_foreign_key: 'coordinate_id', join_table: 'coordinates_imprintables'
...
end

No formulário imprimível de criação / edição, tenho um campo de seleção em que os usuários podem selecionar imprintables de coordenadas (as coordenadas são usadas para identificar imprintables semelhantes àquele que está sendo criado / editado). Meu problema é que, se eu tiver um A imprimível e um B imprimível, quando criar A e listar B como uma coordenada imprimível, quero poder olhar o formulário de edição de B e ver A também listado como coordenada.

Tentei modificar a atualização do controlador e criar uma ação para inserir os dois pares de IDs na tabela do vinculador (coordates_imprintables). Por exemplo, se A.id = 1 e B.id = 2, executando algum sql como:

INSERT INTO coordinates_imprintables (imprintable_id, coordinate_id) VALUES (1, 2)
INSERT INTO coordinates_imprintables (imprintable_id, coordinate_id) VALUES (2, 1)

Mas não consegui fazê-lo funcionar porque não sei ao certo quando um usuário está tentando excluir ou inserir uma coordenada e nem tenho certeza se essa é a resposta correta. Os Railscasts têm sido marginalmente úteis, isso parece um caso complicado, porque eu tenho um modelo com um relacionamento auto-referencial que também é simétrico. Obrigado pelo seu tempo!

questionAnswers(1)

yourAnswerToTheQuestion