Question about has_many/belongs_to


In the firm I work, we’re disabling table name pluralization because
this complies to our standards.

So, suppose I have a table client and a table contact_person (which
has a client_id). I also have the models Client and ContactPerson for

In my Client class, I would have :

has_many :contact_person

and in the ContactPerson class I would have

belongs_to :client

Is this correct? Or do I need to pluralize has_many :contact_person?

Also, how do I get the collection of the ContactPersons associated to
a specific Client object? I tried @client.contactPersons and
@client.contactPeople, but neither seems to work.

I know this is all basic stuff, but I’m still trying to get my head
around ruby/rails.

Thanks for your time,

Sven Magnus

In your Client class, you should have

has_many :contact_people

Be sure to implicitly specify the table names in the Client and
ContactPerson models using set_table_name; otherwise, Rails will look
for “clients” and “contact_people” in your database.

If you already have a collection of contact_people (an array), you could

client.contact_people = my_collection

Rails tends to use underscores instead of camel case. You might want to
take a look at the associations documentation in the API - there are
good explanations of these concepts there.

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs