Kmszk with GO

PHPとかJavascriptとかGolangとかVim関連とか書きそうな感じがしていたが、現状Golangだらけになっている。

Revelの親コントローラを作成する

親コントローラ生成について

親コントローラ(ドキュメントではExtending the Controllerとなっているが)は下記のドキュメントのように作成すると良い。

Controllers | Revel - A Web Application Framework for Go!

type (
    BaseController struct {
        *revel.Controller
    }
)
type (
    MyController struct {
        BaseController
    }
)

このとき、

Note in the MyController the BaseController reference is NOT a pointers.

訳 : MyControllerでは、BaseController参照はポインタではありません

とのことなので注意。

またこのとき、ファイルを分けることもパッケージを分けることも可能なので、

controllers/core/baseController.go

package core

import (
    "github.com/revel/revel"
)

type (
    BaseController struct {
        *revel.Controller
    }
)

controllers/myController.go

package controllers

import (
    "github.com/revel/revel"
    "path/to/controllers/core"
)

type (
    MyController struct {
        BaseController
    }
)

という形でもOK。