提交 af56c5c1 编写于 作者: T Tim Wade 提交者: Eileen M. Uchitelle

[skip ci] Add examples for has_{one,many} :through :source and :source_type (#35612)

* Add example for has_many :through source/source_type

* Add example for has_one :through source/source_type
上级 b1fc1319
...@@ -1305,6 +1305,21 @@ The `:source` option specifies the source association name for a `has_one :throu ...@@ -1305,6 +1305,21 @@ The `:source` option specifies the source association name for a `has_one :throu
The `:source_type` option specifies the source association type for a `has_one :through` association that proceeds through a polymorphic association. The `:source_type` option specifies the source association type for a `has_one :through` association that proceeds through a polymorphic association.
```ruby
class Book < ApplicationRecord
has_one :format, polymorphic: true
has_one :dust_jacket, through: :format, source: :dust_jacket, source_type: "Hardback"
end
class Paperback < ApplicationRecord; end
class Hardback < ApplicationRecord
has_one :dust_jacket
end
class DustJacket < ApplicationRecord; end
```
##### `:through` ##### `:through`
The `:through` option specifies a join model through which to perform the query. `has_one :through` associations were discussed in detail [earlier in this guide](#the-has-one-through-association). The `:through` option specifies a join model through which to perform the query. `has_one :through` associations were discussed in detail [earlier in this guide](#the-has-one-through-association).
...@@ -1717,6 +1732,20 @@ The `:source` option specifies the source association name for a `has_many :thro ...@@ -1717,6 +1732,20 @@ The `:source` option specifies the source association name for a `has_many :thro
The `:source_type` option specifies the source association type for a `has_many :through` association that proceeds through a polymorphic association. The `:source_type` option specifies the source association type for a `has_many :through` association that proceeds through a polymorphic association.
```ruby
class Author < ApplicationRecord
has_many :books
has_many :paperbacks, through: :books, source: :format, source_type: "Paperback"
end
class Book < ApplicationRecord
has_one :format, polymorphic: true
end
class Hardback < ApplicationRecord; end
class Paperback < ApplicationRecord; end
```
##### `:through` ##### `:through`
The `:through` option specifies a join model through which to perform the query. `has_many :through` associations provide a way to implement many-to-many relationships, as discussed [earlier in this guide](#the-has-many-through-association). The `:through` option specifies a join model through which to perform the query. `has_many :through` associations provide a way to implement many-to-many relationships, as discussed [earlier in this guide](#the-has-many-through-association).
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册