デフォルトでは、すべてのコレクションは 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
コレクションへのアクセスがあったとき、上記が自動的にロードされます。