Kmszk with GO

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

Golang

gormで実行されているクエリ(SQL文)を確認する

下記のように実行しているgormの裏側で実行されているクエリが知りたい場合には… db.Where("id = ?", accountID).Find(&account) Debug()を追加してあげると良い。 db.Debug().Where("id = ?", accountID).Find(&account)

gormでJOINを使う(Golang)

今回は、gormで返り値にJoinされる方のテーブルの値は取れているが、Joinする方のテーブルの値が取れていないときのTips。 結論から言うと、JOINを使う場合にはSelect()を指定することと、変数の型に注意。 gormでJoinを使うときの注意 当初はこんな感じで記…

返り値で型指定するDuck Typing

Go言語では様々な形でダックタイピングが可能です。 今回はGo言語で利用可能な返り値の型指定を利用する例を紹介します。 package main import ( "fmt" "errors" ) func main() { robot, err1 := GetDuck("robot") if err1 == nil { robot.Quack() } human, …

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

親コントローラ生成について 親コントローラ(ドキュメントではExtending the Controllerとなっているが)は下記のドキュメントのように作成すると良い。 Controllers | Revel - A Web Application Framework for Go! type ( BaseController struct { *revel…

Revelでリクエストのホスト名を取得

まずは上手く取れた記述から package controllers import ( "github.com/revel/revel" ) type Mycontroller struct { *revel.Controller } func (m *Mycontroller) Index() revel.Result { // redirectURLの取得 requestedHost := m.Request.Host requestedS…

gormでdeleted_atつけてソフトデリートにする

私はGo言語での開発ではモデル周りはgorm使っています。 ソフトデリート利用するときにちょっとハマって、デフォルトで0000-00-00 00:00:00が入ってしまう人のためのTips。 以下のように記述するとOK package models import ( "time" ) type Table struct { …