Grails3.0.4でscaffoldを作成する

ひとまず、Grailsに慣れることを優先しようと思ったので、Scaffoldを作ってみました。

ドメインクラスの作成

まず、ドメインを作ります。ドメインとは、MVCのModelの部分に当たります。Grailsでは、Modelをドメインとサービスに分けているようです。ここは今後勉強していこうとおもいます。ドメインクラスを作るのは、createコマンドが準備されているので、それを使いました。

grails create-domain-class example.Book

これで、grails-app/domains/example/Book.groovyが作られました。

ドメインクラスにてテーブル定義を行う

ドメインクラスにメンバ変数を設定して、テーブル定義と制約を書いていきます。

package example

class Book {

    String title
    String content
    Integer price
    Date published

    static constraints = {
        title       blank: false,   nullable: false, size: 1..10
        content     blank: true,    nullable: true
        price       blank: true,    nullable: true
        published   blank: true,    nullable: true
    }
}

すごく適当に作りました。タイトルと、内容と、値段と、発売日ですね。constraintsブロックに、制約を書いていきます。お試しなので、タイトルのみ必須で、タイトルは10文字以下にしました。データベースはデフォルトのH2を使っており、アプリの起動時にメモリ上に作られ、終了時に全部削除されます。お試しでやる分には十分なのでこのままにしていますが、永続化したくなったらPostgresqlにでもします。それは今度の話にします。

とりあえずこれでいいでしょう。

Scaffoldを作成する

では、このドメインのScaffoldを作ってみましょう。

grails generate-all example.Book

バーッと処理が走って色々できました。
では、grailsを起動します。

grails run-app

起動したら、 http://localhost:8080/books/ にアクセスしてみます。

インデックス

なにもないので作成を押します。

作成画面

作成画面。タイトルだけ必須になってます。blank: falseにしたからですね。入力項目は、発売日をDate型にしているので、日付を選択するためのセレクトボックスが自動で作られています。値段もIntegerにしているので、input type=numberになっている模様。

閲覧画面

作成完了画面。サクッとデータが登録できていいですね。
では今度はサクッと消してみます。削除確認ダイアログが表示されたので、はいを押します。

削除済み画面

削除完了画面。結果が表示されています。

まとめ

Scaffoldを作ってデータを登録するところはRailsと同じで非常に簡単でした。
Viewを修正したりなどはまだ行っていないので、後日試してみます。
せっかくBootstrap3入れたし。


タグ Grails, groovy | パーマリンク.

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です