Я не думаю, что Bar.new фактически создает объект в базе данных, поэтому идентификатор на самом деле все еще равен нулю. Если вам нужна ссылка на эти объекты, вам сначала нужно сохранить их.
Можете ли вы сохранить их с некоторыми сведениями по умолчанию? Я не очень много использовал рельсы, но я думаю, что вы должны быть осторожны, чтобы очистить их, если вы в конечном итоге не совершите ерунду. Что еще более важно, я подозреваю, что ваш рабочий процесс и / или модель данных должны быть исправлены, но, возможно, я просто не знаком с более сложными настройками рельсов.
Наконец, если все эти вещи являются зависимыми и являются частью вашей логики модели, то вам, вероятно, следует создать эти объекты в бессмысленной модели и присоединить все, что нужно контроллеру. В противном случае вы позволите логике вашей модели проникнуть в контроллер.
Чтобы быть более явным (кстати, я уверен, что это плохая форма рельсов, даже если она работает):
def new
@nonsense = Nonsense.new
@nonsense.bar = Bar.new
@nonsense.bar.any_necessary_attributes = some_value
@nonsense.bar.save
@nonsense.foo = Foo.new
@nonsense.foo.any_necessary_attributes = some_value
@nonsense.foo.save
...