A has many through association is often used to set up a many to many connection with another model.
Ruby on rails has many.
Ruby on rails 3 2 is the last series of releases that support ruby 1 8 7.
Ruby on rails 3 0 has been designed to work with ruby 1 8 7 ruby 1 9 2 and jruby 1 5 2.
The first step to implementing a has many through association is to run the rails generator to create the model and the migration files.
Specifies a one to one association with another class.
Given you have customer has one parent in your model it looks like you are trying to create a one to many relationship.
Methods will be added for retrieval and query for a single associated.
Working with associations was the most difficult part of building central perk my ruby on rails application.
With has many through associations this option is ignored at least in versions up to 2 1 0 so even if you set dependent option to destroy your join objects will be deleted not firing any callbacks you have set on destroy events.
2 4 the has many through association.
Ruby on rails has been popularizing both concepts along with a variety of other controversial points since the beginning.
If this is correct you don t need a join table.
Earlier versions are not supported.
To learn more about why rails is so different from many other web application frameworks and paradigms examine the rails doctrine.
Has many and belongs to relationships made sense but the addition to many to many has many through relationships are where it got weird i ran into several issues while building my app and here s how i solved them.
The has many through and the has and belongs to many.
Rails tip i am using the shortened version of the rails generate command which is simply rails g.
Has many through and has and belongs to many relationships function through a join table which is an intermediate table that represents the relationship between other tables unlike a join query data is actually stored in a table.
You only need a join table if you are creating a many to many relationship.
This association indicates that the declaring model can be matched with zero or more instances of another model by proceeding through a third model.
This method should only be used if this class contains the foreign key.
We will use the entity.
To do this as a one to many remove the parentalrelation model and table and update your customer class to something like this.
If the other class contains the foreign key then you should use has one instead.
See also activerecord associations classmethods s overview on when to use has one and when to use belongs to.