Active Record supports automatic identification for most associations with standard names. However, Active Record will not automatically identify bi-directional associations that contain any of the following options:
Active Record supports automatic identification for most associations with standard names. However, Active Record will not automatically identify bi-directional associations that contain a scope or any of the following options:
*`:conditions`
*`:through`
*`:polymorphic`
*`:class_name`
*`:foreign_key`
For example, consider the following model declarations:
...
...
@@ -787,12 +784,6 @@ a.first_name = 'David'
a.first_name==b.writer.first_name# => true
```
There are a few limitations to `:inverse_of` support:
* They do not work with `:through` associations.
* They do not work with `:polymorphic` associations.
* They do not work with `:as` associations.
Detailed Association Reference
------------------------------
...
...
@@ -1012,7 +1003,7 @@ When we execute `@user.todos.create` then the `@todo` record will have its
##### `:inverse_of`
The `:inverse_of` option specifies the name of the `has_many` or `has_one` association that is the inverse of this association. Does not work in combination with the `:polymorphic` options.
The `:inverse_of` option specifies the name of the `has_many` or `has_one` association that is the inverse of this association.
```ruby
classAuthor<ApplicationRecord
...
...
@@ -1082,7 +1073,7 @@ You can use any of the standard [querying methods](active_record_querying.html)
The `where` method lets you specify the conditions that the associated object must meet.
```ruby
classbook<ApplicationRecord
classBook<ApplicationRecord
belongs_to:author,->{whereactive: true}
end
```
...
...
@@ -1299,7 +1290,7 @@ TIP: In any case, Rails will not create foreign key columns for you. You need to
##### `:inverse_of`
The `:inverse_of` option specifies the name of the `belongs_to` association that is the inverse of this association. Does not work in combination with the `:through` or `:as` options.
The `:inverse_of` option specifies the name of the `belongs_to` association that is the inverse of this association.
```ruby
classSupplier<ApplicationRecord
...
...
@@ -1694,7 +1685,7 @@ TIP: In any case, Rails will not create foreign key columns for you. You need to
##### `:inverse_of`
The `:inverse_of` option specifies the name of the `belongs_to` association that is the inverse of this association. Does not work in combination with the `:through` or `:as` options.
The `:inverse_of` option specifies the name of the `belongs_to` association that is the inverse of this association.