Gorm: рдкреНрд░рдЧрдгрд┐рдд рдкреНрд░рдХрд╛рд░ рдХреЗ рдореБрджреНрджреЗ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 26 рдирд╡ре░ 2014  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: go-gorm/gorm

рдореЗрд░реЗ рдкрд╛рд╕ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣реИ:

type BufferType string
const (
    Console BufferType = "console"
    Channel BufferType = "channel"
    Conversation BufferType = "conversation"
)

type Buffer struct {
    Bid  int64  `gorm:"primary_key:yes"`
    Type BufferType `sql:"not null;type:ENUM('console', 'channel', 'conversation')"`
    Name string `sql:"size:255;not null"`
}

рдЬрдм рдореИрдВ db.Save (рдмрдлрд░) рдЖрдЬрд╝рдорд╛рддрд╛ рд╣реВрдБ, рддреЛ рдореБрдЭреЗ рдирд┐рдореНрди рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИ:
sql: converting Exec argument #1's type: unsupported type BufferType, a string)

рдХреНрдпрд╛ рдпрд╣ рд╣рд▓ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛ рдХрд┐ рдмрдлрд╝рд░ рдЯрд╛рдЗрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реИ, рдФрд░ рд╕рд╣реЗрдЬреЗрдВ? рдЕрдЧрд░ рдореИрдВ рдЗрд╕ рд╕рдВрд░рдЪрдирд╛ рдХреЛ db.Find () рдХреЗ рд╕рд╛рде рдЖрдЬрд╝рдорд╛рдХрд░ рд▓реЛрдб рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдореБрдЭреЗ рд╕рдорд╛рди рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдорд┐рд▓рддреА рд╣реИрдВ

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдореЗрд░реА рднреА рдпрд╣реА рд╕рдорд╕реНрдпрд╛ рдереАред @bramp рдХреЗ рд╕рдорд╛рдзрд╛рди рдиреЗ рдЕрднреА рднреА рдореБрдЭреЗ рдПрдХ рддреНрд░реБрдЯрд┐ рджреА рд╣реИред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛:

func (u *BufferType) Scan(value interface{}) error { *u = BufferType(value.([]byte)); return nil }
func (u BufferType) Value() (driver.Value, error)  { return string(u), nil }

рдЕрдВрддрд░ []byte рдмрдЬрд╛рдп string ред рдЗрд╕ рд╕реНрдЯреИрдХрдУрд╡рд░рдлреНрд▓реЛ рдереНрд░реЗрдб рдиреЗ рдореЗрд░реА рдорджрдж рдХреА: http://stackoverflow.com/a/20582504/2418739

рд╕рднреА 3 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдХреБрдЫ рдФрд░ рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рдмрд╛рдж, рдпрд╣ рддреНрд░реБрдЯрд┐ рдЧреЛрд▓рд╛рдВрдЧ рдбреЗрдЯрд╛рдмреЗрд╕/рдПрд╕рдХреНрдпреВрдПрд▓ рдХреЛрдб рд╕реЗ рдмрд╛рд╣рд░ рдЖ рд░рд╣реА рд╣реИ, рдФрд░ рдореБрдЭреЗ рдпрд╣рд╛рдВ рдПрдХ рд╕рдорд╛рдзрд╛рди рдорд┐рд▓рд╛ред рдореБрдЭреЗ рдмрд╕ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ:

func (u *BufferType) Scan(value interface{}) error { *u = BufferType(value.(string)); return nil }
func (u BufferType) Value() (driver.Value, error)  { return string(u), nil }

рдпрд╣ рдереЛрдбрд╝рд╛ рдХреНрд▓рд┐рдВрдХреА рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдпрд╣ рдЬрд╛рдирдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдХреИрд╕реЗ рдореИрдк рдХрд┐рдпрд╛ рдЬрд╛рдПред рдЕрдЧрд░ рдореБрдЭреЗ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рддреЛ рдореИрдВ рдпрд╣рд╛рдВ рддреНрд░реБрдЯрд┐ рдЬрд╛рдВрдЪ рднреА рдЬреЛрдбрд╝ рд╕рдХрддрд╛ рд╣реВрдВред

рдореЗрд░реА рднреА рдпрд╣реА рд╕рдорд╕реНрдпрд╛ рдереАред @bramp рдХреЗ рд╕рдорд╛рдзрд╛рди рдиреЗ рдЕрднреА рднреА рдореБрдЭреЗ рдПрдХ рддреНрд░реБрдЯрд┐ рджреА рд╣реИред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛:

func (u *BufferType) Scan(value interface{}) error { *u = BufferType(value.([]byte)); return nil }
func (u BufferType) Value() (driver.Value, error)  { return string(u), nil }

рдЕрдВрддрд░ []byte рдмрдЬрд╛рдп string ред рдЗрд╕ рд╕реНрдЯреИрдХрдУрд╡рд░рдлреНрд▓реЛ рдереНрд░реЗрдб рдиреЗ рдореЗрд░реА рдорджрдж рдХреА: http://stackoverflow.com/a/20582504/2418739

+1 рдмрдврд╝рд┐рдпрд╛ рд╕рдорд╛рдзрд╛рдиред рдХрд╛рд╢ рдпрд╣ GORM рдбреЙрдХреНрд╕ рдореЗрдВ рд╣реЛрддрд╛ред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

satb picture satb  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

hypertornado picture hypertornado  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

leebrooks0 picture leebrooks0  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

rfyiamcool picture rfyiamcool  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

pjebs picture pjebs  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ