The only other way I can think to do this would be to build a big tree into memory, which seems hard and may not work with the AR serializers. For example:
```ruby
exhibit = Exhibit.new
exhibit.searches.build( #stuff from import)
exhibit.pages.build(#stuff from import)
# ...
exhibit.save
```