Ruby on Rails Tuesday, February 11, 2014

NB: AddFooToPosts would be AddOwnerIdToCats, I just messed up the copy paste.


On Tue, Feb 11, 2014 at 11:10 AM, James Turley <jamesturley1905@googlemail.com> wrote:
Example: an owner has many cats.

In your Cat model, add the line: 
belongs_to :owner

in your Owner model, add the line:
has_many :cats

You then need to run a migration on your cats table, to add the foreign key for owners, so Rails can build the associations. From the command line:

rails g migration add_owner_id_to_cats owner_id:integer

This should create a migration file (in the /db folder), with something like the following in it: 

class AddFooToPosts < ActiveRecord::Migration
  def change
    add_column :cats, :owner_id, :integer # ie, table, field name, field type
  end
end

then, run your migration.

rake db:migrate

Thanks to the convention over configuration approach, rails will automagically work out that owner_id is a foreign key to the owners table. from there, you'll be able to access cats through owners, and owners through cats:

mog.owner # "Steve"
steve.cats.first # "Mog"

That, of course, is just the tip of the iceberg - you can define all kinds of odd relations, and customise them as much as you want.

JT




On Mon, Feb 10, 2014 at 8:28 PM, Colin Law <clanlaw@gmail.com> wrote:
On 10 February 2014 16:50, Ken D'Ambrosio <flyingtoasters1024@gmail.com> wrote:
> Hey!  I'm decent at Ruby, but pretty darn new to Rails.  Working through
> some tutorial stuff, and don't fully understand what direction to take.  I
> want to create a one-to-many association; how do I accomplish this?

Work right through a good tutorial such as railstutorial.org (free to
use online) and all the basics (including associations) will become
clear.

Colin

--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscribe@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/CAL%3D0gLvN0AVV6G%2BJH_3HY6mKXtT5tgbj2eb%3D%3DMaQfGxG_rM5Lw%40mail.gmail.com.


--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscribe@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/CAAb4X%3Dwut_fWAB_7B40NB8_dmJ7sXJNgEgCpg%2B-obG8NbqQ36A%40mail.gmail.com.
For more options, visit https://groups.google.com/groups/opt_out.

No comments:

Post a Comment