Go Revel Booking Sample やってみる

Booking Sample

動かすには、以下のコマンド

$ revel run github.com/revel/revel/samples/booking

なんか良くわからないログがざぁっとでる。
エラーもあるけど、気にせず
http://localhost:9000
へアクセスする。

Database / Gorp Plugin

RailsでいうとActiveRecordにあたるもの?
誤訳上等すんませんщ(゚д゚щ)ドウセエイゴデキネェンダヨ!オラァ!!!

コントロールから全部トランザクションかかるっぽい。

    • app/controllers/init.go
func init() {
        // アプリ開始時にinit呼び出し
	revel.OnAppStart(Init)  // DLサンプルソースでは InitDB になってる
        // トランザクション処理?アクションが実行される前に適用されるっぽい
        // GroupController内のBegin Commit Rollback タイミング指定
	revel.InterceptMethod((*GorpController).Begin, revel.BEFORE)
	revel.InterceptMethod(Application.AddUser, revel.BEFORE)
	revel.InterceptMethod(Hotels.checkUser, revel.BEFORE)
	revel.InterceptMethod((*GorpController).Commit, revel.AFTER)
	revel.InterceptMethod((*GorpController).Rollback, revel.FINALLY)
}

Application.AddUserは、セッションチェックっぽい事やってるみたい
checkUserの説明>ログイン済みでないか確認 の例

Validation
    • Railsのようにmodelにたいして、やっているっぽい。
    • models/booking.go

エラーが起こったとき、どのフィールドのエラーかは、モデル名.フィールド名で検索しろって書いてあんのかな?外人特有の単純で偉そうな言い回し何とかならんのかいな。
エラー処理が各フィールドに付いている_| ̄|○
これは、一番はじめのやり方じゃ駄目って事なんだろうか。
かなり面倒。