I’m back working on a Rails application and since its Rails 2.x, I’m using ActiveRecord. That is of course fine, but most of my experience has been with DataMapper, which plays nicely with Merb and Rails 3.
Yesterday I was working on some models and their associations, starting with the generation of the models:
script/generate model Company name:string script/generate model Industry name:string
Then I got to the step where I indicated in the model that each object could be associated with any number of its associated objects and so of course I used something like this:
class Company has_and_belongs_to_many :industries end class Industry has_and_belongs_to_many :companies end
That is good, but what about the database migrations for a many-to-many ActiveRecord association for Rails? Turns out that since the existing migrations were automatically created prior to the associations, at least one needed to be edited prior to being run via rake. I added something like this to the migration that was automatically generated when I created the industry model:
create_table :companies_industries, :id => false do |t| t.references :company, :industry end
After that, I ran:
It worked like a charm!