diff options
author | lanzhiheng <lanzhihengrj@gmail.com> | 2018-07-18 17:56:08 +0800 |
---|---|---|
committer | lanzhiheng <lanzhihengrj@gmail.com> | 2018-07-18 17:58:58 +0800 |
commit | 5a516335ea78c05dad190e57a590b1f1d3d783f5 (patch) | |
tree | 200e4b58395416a5395b1e2e4faaecb59655670d /guides | |
parent | 241bbf268cca61c42b61076deead699010068968 (diff) | |
download | rails-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')
-rw-r--r-- | guides/source/association_basics.md | 16 |
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? |