EDIT2: Тот же код отлично работает в Rails 2.3.5. Кажется, это ошибка в бета-версии.
РЕДАКТИРОВАТЬ: Я написал тест в моем приложении, чтобы смоделировать это. Вот результат.
test "should update empresa" do
addr = empresas(:ufba).address
put_with users(:s_one), :update, :id => empresas(:ufba).to_param,
:empresa => { :address_attributes => {:id => empresas(:ufba).address.to_param,
:city => "Feira de Santana"}}
assert_not_nil assigns(:empresa)
assert_not_same addr, assigns(:empresa).address, "Endereco nao foi atualizado"
assert_redirected_to empresa_path(assigns(:empresa))
end
Работает без ошибок.