Кажется простым, но с проблемой:
model A belong_to :B model B has_many :A database tables: table A: id,...,b_id table B: id,...
При попытке создать новый A, я устанавливаю (существующий) B, выполнив: ab = B
Я получаюошибка "b не может быть пустым"
Подумайте, как работают ваши коллекции и отношения между родителями и детьми.Вы можете - как предложено - добавить идентификатор соответствующего B к вашему A, но вы можете альтернативно сказать B.a[] = a, что добавило бы "a" к вашей коллекции "a" вашего объекта "B".Таким образом, отношения устанавливаются более интуитивно, ориентируясь на родительский объект, а не на ребенка.
B.a[] = a
Вы также должны быть в состоянии сделать newA = B.as.build («как» во множественном числе от a).
newA = B.as.build
Конечно, ваши примеры 'A, a, B и b` очень запутаны! В будущем используйте 'customer' & 'order' или 'blog' & 'post' или что-нибудь , но загадочные буквы без значения.
Вместо того, чтобы делать ab = B, делайте a.b_id = B.id.