Has_and_belongs_to_many migration problem i am facing

I have two models cow and milkman.
I am using has_and_belongs_to_many in both models .
By mistake i have deleted cows_milkmans table from database.

When i use this command i am getting error
a = Cow.last
a.milkmans # when i fire this command then i am getting error that
cows_milkmans table not exist

As per my knowledge has_and_belongs_to_many will create third table
automatically , no migration is needed.

How can get that table ?

Hi pafahim,

When you use HABM association in your models It will not generate the
join table automatically. We have to create manually.

For your issue try to rollback the join table from database.

Thanks & Regards,
VIjay

No man …
i just use HABM in models and when i fire command in console at that
point
third table is created.
And i do nothing manually…

On Fri, Sep 21, 2012 at 9:07 PM, Fahim P. [email protected] wrote:

No man …
i just use HABM in models and when i fire command in console at that
point third table is created.
And i do nothing manually…

Hi!

I don’t use habtm so I’m not familiar with how it work in core. But
reading from

The simplest rule of thumb is that you should set up a has_many
:through relationship
if you need to work with the relationship model as an independent
entity.
If you dont need to do anything with the relationship model, it may be
simpler to set up a has_and_belongs_to_many relationship (though youll
need to remember to create the joining table in the database).

You should use has_many :through if you need validations, callbacks, or
extra attributes on the join model.
So I guess you need to create that table in the database manually.

a.milkmans # when i fire this command then i am getting error that
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
To view this discussion on the web visit
https://groups.google.com/d/msg/rubyonrails-talk/-/tPh97NyF83oJ.

For more options, visit https://groups.google.com/groups/opt_out.

On Sat, Sep 22, 2012 at 6:00 AM, Jim Ruther N. [email protected]
wrote:

You should use has_many :through if you need validations, callbacks, or
extra attributes on the join model.

Also, I haven’t had to do it myself, but I’ve heard that retrofitting
a habtm setup to use hmt, after discovering a need for any of the
above, can be a royal pain in the proverbial posterior. So, I usually
just ignore habtm, and use hmt for all such joins.

-Dave


Dave A., Available Secret-Cleared Ruby/Rails Freelancer
(VA/DC/Remote);
see www.DaveAronson.com, www.Codosaur.us, and www.Dare2XL.com for more
info.