デフォルトでは、すべてのコレクションは Volt::Model クラスを使用します。
page._info!.class
# => Volt::Model
標準の Model クラスの代わりに、自分でクラスを用意してそれを読み込むことも可能です。このとき、モデルとするクラスは Volt::Model を継承している必要があります。クラスは /app/{component}/models フォルダに格納します。例えば、app/main/info.rb などです。
class Info < Volt::Model
end
これで、_info というサブコレクションにアクセスすることができます。それは Info のインスタンスとして読み込まれるものです。
page._info!.class
# => Info
これによって、コレクションにカスタムメソッドやバリデーションを設定することが可能です。
Volt::ArrayModel の代わりに読み込まれるクラスをモデルのフォルダに追加することもできます。通常、store._items のような操作は Volt::ArrayModel のインスタンスを返しますが、もし models/items.rb クラスを作る場合は以下のようになります。
class Items < Volt::ArrayModel
# Custom array model code, typically this would be queries, factories, etc...
end
コレクションへのアクセスがあったとき、上記が自動的にロードされます。