У меня есть следующие отношения данных:
model A has_one B, :through => C
model A has_one C, :dependent => :destroy
model B has_many C, :dependent => :destroy
model B has_many A, :through => C
model C belongs_to A
model C belongs_to B
скажем, у меня есть объект a (тип A) и объект b (тип B) и ab = b, я хочу удалить ассоциацию.
то, что я сейчас делаю, это b.as.delete (@a), он удаляет строку из таблицы C, но ab остается действительным, даже если я пытаюсь сделать ab = nil, он остается действительным со старымvalue.
Я только что обнаружил, что если это происходит только в том случае, если я добавляю ассоциацию с помощью ab = b, если я добавляю ее с помощью b.as << a, то при удалении все работает нормально, как и ожидалось ..1008 * <p>что я делаю не так?
update - если я делаю a.reload, значение обновляется до nil, также в случае, когда я создал ассоциацию с ab = b, я не хочуиспользуйте перезагрузку, чтобы получить правильное значение.почему это происходит только в этом случае, а не в b.as << a case? </p>