build
STIタイプを介して特定のクラスのモデルをターゲットとするスコープでメソッドを呼び出し、ActiveRecordに正しいクラスのインスタンスを構築させたいと思います。
class LineItem < ActiveRecord::Base
scope :discount, where(type: 'DiscountLineItem')
end
class DiscountLineItem < LineItem; end
> LineItem.discount.build # Expect an instance of DiscountLineItem here
=> #<LineItem ...>
DiscountLineItem
ここでは、のインスタンスではなく、のインスタンスを期待していましたLineItem
。