モデル

花見のモデルドメインは、表現しようとする動作(エンティティ)をそのパーシスタンス層(リポジトリとデータベース)から分離する方法で実装されていますこのデザインは、私たちのオブジェクトのインターフェイスを実際に小さく保ち、その結果、迅速かつ再利用可能になります。

 

基本的な使用法

基本的な使い方を説明するために、PostgreSQLデータベースを使用します。

最初のステップとして、モデルを生成します。

% bundle exec hanami generate model book
      create  lib/bookshelf/entities/book.rb
      create  lib/bookshelf/repositories/book_repository.rb
      create  spec/bookshelf/entities/book_spec.rb
      create  spec/bookshelf/repositories/book_repository_spec.rb

これは生成されたエンティティです:

class Book < Hanami::Entity
end

これは生成されたリポジトリですが、

class BookRepository < Hanami::Repository
end

次に、移行を生成します。

% bundle exec hanami generate migration create_books
      create  db/migrations/20161113154510_create_books.rb

次のコードを使用して移行を編集してみましょう:

Hanami::Model.migration do
  change do
    create_table :books do
      primary_key :id
      column :title,      String
      column :created_at, DateTime
      column :updated_at, DateTime
    end
  end
end

これでデータベースを準備する必要があります:

% bundle exec hanami db prepare

私たちはリポジトリを使う準備が整いました:

% bundle exec hanami console
irb(main):001:0> book = BookRepository.new.create(title: "Hanami")
=> #<Book:0x007f95ccefb320 @attributes={:id=>1, :title=>"Hanami", :created_at=>2016-11-13 15:49:14 UTC, :updated_at=>2016-11-13 15:49:14 UTC}>

リポジトリーエンティティーマイグレーション、およびデータベースCLIコマンドの詳細を学んでください。


前のページ:ビュー – テスト