From 5a516335ea78c05dad190e57a590b1f1d3d783f5 Mon Sep 17 00:00:00 2001 From: lanzhiheng Date: Wed, 18 Jul 2018 17:56:08 +0800 Subject: Add example for `has-and-belongs-to-many` association. [ci skip] --- guides/source/association_basics.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'guides/source/association_basics.md') diff --git a/guides/source/association_basics.md b/guides/source/association_basics.md index e7408b5a7f..e13f4b6aaf 100644 --- a/guides/source/association_basics.md +++ b/guides/source/association_basics.md @@ -365,6 +365,22 @@ class CreateAssembliesAndParts < ActiveRecord::Migration[5.0] end ``` +As you can see we don't create the relevant model for `assemblies_parts` table, So We can't create the many-to-many record like this + +``` ruby +AssemblyPart.create(assembly: @assembly, part: @part) # => NameError: uninitialized constant AssemblyPart +``` + +If you want to create the relevant many-to-many record, you can use the below code + +``` ruby +@assembly.parts << @part +# Or +@part.assemblies << @assembly +``` + +They are equivalent. + ### Choosing Between `belongs_to` and `has_one` If you want to set up a one-to-one relationship between two models, you'll need to add `belongs_to` to one, and `has_one` to the other. How do you know which is which? -- cgit v1.2.3