@proelixir

Страница 21 из 1045
Константин
07.07.2016
07:30:59
Есть модель ECTO

я в ней хочу добавить некий атрибут модуля

@labels %{ name: "Имя источника", code: "Api код доступа", }

А потом хочу в виде выводить его как Module.get_label(:name)

Google
Константин
07.07.2016
07:32:25
и получать "Имя источника"

Я пытаюсь сделать так:

defmodule ICLogger.Model.Label do def __using__(_) do quote do def get_label(attr) do @labels[attr] || "empty_@labels_to_#{attr}" end end end end

И потом в web.ex подключаю этот модуль к моделям

use ICLogger.Model.Label

Выдает ошибку function ICLogger.Source.get_label/1 is undefined or private

Как, блин, подцепить эту простую функцию к модели? Только тут есть такой момент, что лэйблы все в атрибуте модуля, т.е. тут явно надо использовать quote или еще какой-то хак

Если это получится решить - попробую макрос написать.

Кажись решил

Если кому интересно - могу описать как

Теперь вопрос, хочу сделать параметр code автоматически забиваемым и рандомным

это же в changeset пихать?

Nik
07.07.2016
09:13:42
а у тебя changeset разный для создания и апдейта?

Google
Константин
07.07.2016
09:16:59
нет

в том и прикол)

наверно надо в контроллер это пихать

Nik
07.07.2016
09:17:54
а не проще маленький сервис объект зафигачить?

в контроллере его вызывать

Константин
07.07.2016
09:18:24
я вообще думаю прописать в схему

Nik
07.07.2016
09:18:36
и ты будешь всегда использовать один и тот же модуль для создания записи

отовсюду

ну в схеме ты можешь

по дефолту

выставлять значение и все

т.е. если оно будет, то схема нового не напишет

Константин
07.07.2016
09:19:53
Т.е. у всех записей оно будет одинаково

Nik
07.07.2016
09:20:33
нет почему же

ты можешь какой-нить секур рандом вызывать там по идеи

Константин
07.07.2016
09:20:51
:default - Sets the default value on the schema and the struct. The default value is calculated at compilation time, so don't use expressions like Ecto.DateTime.utc or Ecto.UUID.generate as they would then be the same for all records

Nik
07.07.2016
09:20:53
разве схема не поддерживает?

Константин
07.07.2016
09:20:54
Нет, не могу

Nik
07.07.2016
09:21:00
ах

ну значит не судьба так

Google
Nik
07.07.2016
09:21:12
:D

Константин
07.07.2016
09:21:15
)))

Вот в AR были всякие колбэки

и было понятно что куда пихать

а сюда мозг еще не переехал))

Как прописывать всякие атрибуты, которые не должны приниматься от пользователя или должны модифицироваться в зависимости от других атрибутов

Nik
07.07.2016
09:22:58
ноооу)

коллбэки - неочевидный ад

вот будет у тебя сервис обжэкт для создания записи

Константин
07.07.2016
09:23:31
Да, так пишут, но пока не ощутил

Nik
07.07.2016
09:23:36
и там явно будет

эт пока не ощутил) мы когда балком загружали 10к записей каждые 10 минут года 3 назад

ощутили по полной

ну 10к объектов, которые там в 14-15 таблиц писали

был адок)

Константин
07.07.2016
09:24:49
Вот уточни по сервису. В нем должны быть методы типа create, update?

Или по сути можно написать несколько changesetов?

Nik
07.07.2016
09:25:17
ну я обычно делаю простые маленькие модули с одним паблик вызовов

call

можно даже так ObjectBuilderService.call и потом записываешь что из билдера пришло

Google
Nik
07.07.2016
09:25:56
ну или фактори

кто как делает

ObjectBuilderService.call может вернуть ченджсет

который ты дальше запишешь

ObjectBuilderService.call |>

ну туда параметры прокинул прост и все)

можно прям в объекте записывать, но это уже два действия)

я люблю просто на маленькие объекты разбивать, их тестить проще имхо

ну и создается эффект чтения предложения на английском

params |> BuildObject |> PersistObject

ну типа того что-то) я на эликсире ток одну аппу написал продакшеновую, но я и в рубях также делаю по сути. Разбиваю на мелкие классы с одним публичным методом

Константин
07.07.2016
09:31:11
пока не могу сообразить что ты предлагаешь)) но частично я понял.

Alex
09.07.2016
19:52:06
Нормально иметь кучу разных под разные задачи

Алхимики, внезапно есть хорошая либа для авторизаии https://github.com/smpallen99/coherence

Rumata
11.07.2016
19:47:10
Хах есть кэши для джавы с таким названием

Aldar
11.07.2016
20:41:25
https://github.com/bigardone/phoenix-trello

https://www.livecoding.tv/jbhatab/

Vasiliy
11.07.2016
21:56:18
jah rastafari haile selassie

Rumata
12.07.2016
09:10:43
jah rastafari haile selassie
ты уже на их языке заговорил?

Google
Maxim
12.07.2016
09:31:42
Хах есть кэши для джавы с таким названием
Когерентность это же просто термин

Ну а смысл удивляться что либа для кешей так называется?

Rumata
12.07.2016
09:34:59
ну смысл удивляться в жизни?

Alex
13.07.2016
15:05:18
Котоны, я вот думаю наконец попробывать пописать подкасы про Эликсир. Гостем кто-то хочет побыть?

Rumata
13.07.2016
15:23:59
кстати я понимаю

что вероятность маленькая но у нас сегодня митап

кто интересует может можно будет по перескопить talks

http://www.meetup.com/Elixir-Berlin/events/232532502/?comment_table_id=246520085&comment_table_name=reply

Константин
13.07.2016
16:17:17
@proelixir_news

Тут новости канала

Rumata
13.07.2016
16:20:36
Benchee 0.3.0 released – formatters, parallel benchmarking & more

о

Страница 21 из 1045