Ruby DSL for building models and forms together