You’ll want to read up on
fields_for, which will help you build the required HTML inputs. I’d also recommend the Railscast on this topic: http://railscasts.com/episodes/196-nested-model-form-revised
Some other general notes on your Gist:
has_many associations should be plural. Things will usually work with them named otherwise, but you may encounter odd behavior.
the data model doesn’t seem quite right - custom_field_infos should have a contact_id column and a custom_field_id column (to indicate which contact & field this record has data for). It shouldn’t need a user_id column unless there’s something else going on that’s not mentioned in the Gist.