@@ -721,6 +721,7 @@ When you declare a `belongs_to` association, the declaring class automatically g
*`association=(associate)`
*`build_association(attributes = {})`
*`create_association(attributes = {})`
*`create_association!(attributes = {})`
In all of these methods, `association` is replaced with the symbol passed as the first argument to `belongs_to`. For example, given the declaration:
...
...
@@ -737,6 +738,7 @@ customer
customer=
build_customer
create_customer
create_customer!
```
NOTE: When initializing a new `has_one` or `belongs_to` association you must use the `build_` prefix to build the association, rather than the `association.build` method that would be used for `has_many` or `has_and_belongs_to_many` associations. To create one, use the `create_` prefix.
...
...
@@ -777,6 +779,10 @@ The `create_association` method returns a new object of the associated type. Thi
customer_name: "John Doe")
```
##### `create_association!(attributes = {})`
Does the same as <tt>create_association</tt> above, but raises <tt>ActiveRecord::RecordInvalid</tt> if the record is invalid.
#### Options for `belongs_to`
...
...
@@ -1019,6 +1025,7 @@ When you declare a `has_one` association, the declaring class automatically gain
*`association=(associate)`
*`build_association(attributes = {})`
*`create_association(attributes = {})`
*`create_association!(attributes = {})`
In all of these methods, `association` is replaced with the symbol passed as the first argument to `has_one`. For example, given the declaration:
...
...
@@ -1035,6 +1042,7 @@ account
account=
build_account
create_account
create_account!
```
NOTE: When initializing a new `has_one` or `belongs_to` association you must use the `build_` prefix to build the association, rather than the `association.build` method that would be used for `has_many` or `has_and_belongs_to_many` associations. To create one, use the `create_` prefix.
...
...
@@ -1073,6 +1081,10 @@ The `create_association` method returns a new object of the associated type. Thi
Does the same as <tt>create_association</tt> above, but raises <tt>ActiveRecord::RecordInvalid</tt> if the record is invalid.
#### Options for `has_one`
While Rails uses intelligent defaults that will work well in most situations, there may be times when you want to customize the behavior of the `has_one` association reference. Such customizations can easily be accomplished by passing options when you create the association. For example, this association uses two such options:
...
...
@@ -1285,6 +1297,7 @@ When you declare a `has_many` association, the declaring class automatically gai
*`collection.exists?(...)`
*`collection.build(attributes = {}, ...)`
*`collection.create(attributes = {})`
*`collection.create!(attributes = {})`
In all of these methods, `collection` is replaced with the symbol passed as the first argument to `has_many`, and `collection_singular` is replaced with the singularized version of that symbol. For example, given the declaration:
...
...
@@ -1312,6 +1325,7 @@ orders.where(...)
orders.exists?(...)
orders.build(attributes={},...)
orders.create(attributes={})
orders.create!(attributes={})
```
##### `collection(force_reload = false)`
...
...
@@ -1427,6 +1441,10 @@ The `collection.create` method returns a new object of the associated type. This
order_number: "A12345")
```
##### `collection.create!(attributes = {})`
Does the same as <tt>collection.create</tt> above, but raises <tt>ActiveRecord::RecordInvalid</tt> if the record is invalid.
#### Options for `has_many`
While Rails uses intelligent defaults that will work well in most situations, there may be times when you want to customize the behavior of the `has_many` association reference. Such customizations can easily be accomplished by passing options when you create the association. For example, this association uses two such options:
...
...
@@ -1768,6 +1786,7 @@ When you declare a `has_and_belongs_to_many` association, the declaring class au
*`collection.exists?(...)`
*`collection.build(attributes = {})`
*`collection.create(attributes = {})`
*`collection.create!(attributes = {})`
In all of these methods, `collection` is replaced with the symbol passed as the first argument to `has_and_belongs_to_many`, and `collection_singular` is replaced with the singularized version of that symbol. For example, given the declaration:
...
...
@@ -1795,6 +1814,7 @@ assemblies.where(...)
assemblies.exists?(...)
assemblies.build(attributes={},...)
assemblies.create(attributes={})
assemblies.create!(attributes={})
```
##### Additional Column Methods
...
...
@@ -1914,6 +1934,10 @@ The `collection.create` method returns a new object of the associated type. This
Does the same as <tt>collection.create</tt>, but raises <tt>ActiveRecord::RecordInvalid</tt> if the record is invalid.
#### Options for `has_and_belongs_to_many`
While Rails uses intelligent defaults that will work well in most situations, there may be times when you want to customize the behavior of the `has_and_belongs_to_many` association reference. Such customizations can easily be accomplished by passing options when you create the association. For example, this association uses two such options:
...
...
@@ -2175,4 +2199,4 @@ Extensions can refer to the internals of the association proxy using these three
*`proxy_association.owner` returns the object that the association is a part of.
*`proxy_association.reflection` returns the reflection object that describes the association.
*`proxy_association.target` returns the associated object for `belongs_to` or `has_one`, or the collection of associated objects for `has_many` or `has_and_belongs_to_many`.
*`proxy_association.target` returns the associated object for `belongs_to` or `has_one`, or the collection of associated objects for `has_many` or `has_and_belongs_to_many`.