as ポリモーフィック関連外部キー名指定
使用可能な関連付け
has_many
has_one
対となる関連に指定するオプション
- polymorphic ポリモーフィック関連
belongs_to
概要
ポリモーフィック関連の外部キー名を指定するオプション。
例えば、以下のようなbelongs_to
がある場合を考える。
class Book < ApplicationRecord
belongs_to :author, polymorphic: true
end
author
として関連付けられる相手のモデルが、has_many
などで双方向関連を定義したい場合は:as
オプションを用いて以下のようにする。
class Person < ApplicationRecord
has_many :books, as: :author
end
これによって、以下のように双方向に関連が定義される。
Person.create
Book.create(author: Person.last)
Book.last.author # => Personのインスタンス
Person.last.books # => Bookのインスタンスの配列