There's a rake db:rollback command that will reverse the last migration, assuming your migration file included the self.down definition (in many cases the down definition is dropping a table or a couple columns). I've mentioned using vim before - the railsvim plugin has a nice command :Rinvert that will create the down automatically based on the contents of the up. There might be a similar plugin for your editor/IDE of choice.
It's common, while working on a single feature, to bounce back and forth between rake db:migrate (which runs all migrations that have not yet been run) and rake db:rollback to peel back the latest migration until you know you'll got a migration file that is correct.
Getting the associations set up is a matter of adding a some_other_table_id integer column. The documentation here is fairly straight-forward:
http://guides.rubyonrails.org/association_basics.html