Size: a a a

Golang Developers — русскоговорящее сообщество

2020 October 12

FL

First Last in Golang Developers — русскоговорящее сообщество
Анатолий
А утебя статус разве не число? Откуда такая махинация через строку?
Число
источник

FL

First Last in Golang Developers — русскоговорящее сообщество
У меня update теперь не пашет, вот ж!
источник

FL

First Last in Golang Developers — русскоговорящее сообщество
unsupported data type: map[age_rating:1]
🙂
источник

x

x-foby in Golang Developers — русскоговорящее сообщество
First Last
Мужики, всем привет!
Вопрос по gorn

У меня есть модель, в которой есть значения в виде енама (0/1/2/3/etc)
Я пытаюсь реализовать Scan/Value функции, застрял на том, как получить исходное значение в бд?

Т.е, условно
type Model struct {
  MyEnum MyEnum `gorm:"column:status"`
}
Вообще это не очень хорошая практика.
Скажем так, она допустима, но в перспективе может принести много проблем.

Если требуются какие-то "перечисления", то проще организовать справочник на стороне БД с кодами, и такой же справочник с константами завести в программе.

В итоге работа должна вестись через символьные коды, а не через числа.
источник

FL

First Last in Golang Developers — русскоговорящее сообщество
Вот я и пытаюсь сделать "константный справочник в программе"
источник

FL

First Last in Golang Developers — русскоговорящее сообщество
type Status struct {
OriginalValue int
Name          string
Description   string
}


Все довольно просто
источник

FL

First Last in Golang Developers — русскоговорящее сообщество
И так же есть доступный список статусов (обычный HashMap<String, Status>)
Проблема в том, что select я "починил", теперь борюсь с сохранением. Не могу никак понять как горну сказать как именно переобразовывать структуру в int тип(в моем случае)
источник

FL

First Last in Golang Developers — русскоговорящее сообщество
Такое ощущение, что GormValue для структуры Status он просто игнорирует...
источник

x

x-foby in Golang Developers — русскоговорящее сообщество
First Last
И так же есть доступный список статусов (обычный HashMap<String, Status>)
Проблема в том, что select я "починил", теперь борюсь с сохранением. Не могу никак понять как горну сказать как именно переобразовывать структуру в int тип(в моем случае)
Не уверен, что есть такая возможность вообще.
Обычно это решается на уровне базы, то есть вы вставляете в качестве значения результат подзапроса с кодом — и всё.
источник

FL

First Last in Golang Developers — русскоговорящее сообщество
Ну select я как-то "поправил")
https://gorm.io/docs/data_types.html - а вот с сохранением/обновлением я никак не могу разобраться(
источник

FL

First Last in Golang Developers — русскоговорящее сообщество
Я конечно могу сделать доп поле у структуры модели и сделать statusToStructure функцию, но...
источник

А

Анатолий in Golang Developers — русскоговорящее сообщество
Просто текст не катит?
источник

FL

First Last in Golang Developers — русскоговорящее сообщество
Я вообще удивился что ничего готового нет, как так блин 🙁
источник

А

Анатолий in Golang Developers — русскоговорящее сообщество
Никто не понимает что ты делаешь, я уверен что есть все что нужно
источник

FL

First Last in Golang Developers — русскоговорящее сообщество
Анатолий
Никто не понимает что ты делаешь, я уверен что есть все что нужно
Дак а что я делаю
Я заменяю магические цифры
источник

x

x-foby in Golang Developers — русскоговорящее сообщество
First Last
Я вообще удивился что ничего готового нет, как так блин 🙁
Покажите реализацию Valuer
источник

А

Анатолий in Golang Developers — русскоговорящее сообщество
First Last
Дак а что я делаю
Я заменяю магические цифры
Просто статус строкой не подходит?
источник

FL

First Last in Golang Developers — русскоговорящее сообщество
x-foby
Покажите реализацию Valuer
Я возвращаю OriginalValue поле у оригинальной структуры
источник

FL

First Last in Golang Developers — русскоговорящее сообщество
Анатолий
Просто статус строкой не подходит?
Нет конечно)
источник

FL

First Last in Golang Developers — русскоговорящее сообщество
В оригинале не статус и таких полей 5 штук
источник