aboutsummaryrefslogtreecommitdiffstats
path: root/guides/source/association_basics.md
diff options
context:
space:
mode:
authorlanzhiheng <lanzhihengrj@gmail.com>2018-07-18 17:56:08 +0800
committerlanzhiheng <lanzhihengrj@gmail.com>2018-07-18 17:58:58 +0800
commit5a516335ea78c05dad190e57a590b1f1d3d783f5 (patch)
tree200e4b58395416a5395b1e2e4faaecb59655670d /guides/source/association_basics.md
parent241bbf268cca61c42b61076deead699010068968 (diff)
downloadrails-5a516335ea78c05dad190e57a590b1f1d3d783f5.tar.gz
rails-5a516335ea78c05dad190e57a590b1f1d3d783f5.tar.bz2
rails-5a516335ea78c05dad190e57a590b1f1d3d783f5.zip
Add example for `has-and-belongs-to-many` association. [ci skip]
Diffstat (limited to 'guides/source/association_basics.md')
-rw-r--r--guides/source/association_basics.md16
1 files changed, 16 insertions, 0 deletions
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?