
Aleksandr
31.08.2016
15:15:02
народ готовиться к школе ))))

Nikolay
31.08.2016
15:15:34

Aldar
31.08.2016
16:05:40
Наверное заняты изучением эликсира, чтобы успеть сойти с поезда под именем руби, бггг)

I
31.08.2016
16:09:49
да не, я вот тесты пишу сейчас

Google

Alex
31.08.2016
16:16:18
я вчера пока свой гем писал, на тесты убил раза в три больше времени чем на сам код

Lupsick
31.08.2016
16:17:53
А я вчера админку для хостинга за 2 часа написал

ojab
31.08.2016
16:21:22
а я купил дневник и тетрадки

Alex
31.08.2016
16:21:44

ojab
31.08.2016
16:21:52
себе конечно же

Alex
31.08.2016
16:22:11
Вдруг у тебя ребенок есть.

Serg Podtynnyi
31.08.2016
16:22:16
знакомой 11класснице)

I
31.08.2016
16:27:18

Nick
31.08.2016
20:16:28

Alex
31.08.2016
20:16:56
т.е без либ?

Nick
31.08.2016
20:18:37
В том числе. Феникс в целом понравился. Но в прод бы делать не стал

Aldar
31.08.2016
20:28:31
Пока будешь изучать эликсир и ОТП, феникс станет получше

Vlad
01.09.2016
04:32:28
А кто нибудь хочет написать статью для сайта rubydev.ru? Каждый день ее смогут видеть 150 человек :) С удовольствием размещу с ссылками на ваш блог/гитхаб. Можно рассказать о вашем проекте например, или просто какие-нибудь good practicies.

Google

Amir
01.09.2016
06:34:05
зачем нужны поля created_at, updated_at
можно создать таблицы без этих полей?

kolas
01.09.2016
06:40:07
можно, просто убери их из миграции

I
01.09.2016
06:51:37
rails g model MyModel --no-timestamps

Amir
01.09.2016
06:52:23
ясно, а если уже поздно, и есть уже куча таблиц с этими полями

I
01.09.2016
06:53:10
ну можно в миграциях убрать
t.timestamps null: false
а можно целенаправленно revome_column сделать

Amir
01.09.2016
07:36:23
хотя пусть живут пока что

Alex
01.09.2016
08:26:58
Я бы не сказалч что они много эрут
а потом могут и понадобиться

Nikolay
01.09.2016
11:42:23
а вообще я шо хотел спросить - как правильено делать инициализацию обьекта моей рельсо модели(класса)
чтобы не хуками

ojab
01.09.2016
11:45:58
.new
ты хочешь модель при инициализации какими-то данными заполнять?
Какой примерно юзкейс?
хуки — callback'и?

Nikolay
01.09.2016
11:47:53
ага
да, так юзкейс такой Domain.new('example.com') =>
Domain(name: 'example', zone: Zone.find_by('com'), ...)
сейчас у меня это хелпером в хеш творится, но код превращается в говнокод

I
01.09.2016
11:49:05
такое лучше в колбеках, действительно

Google

Nikolay
01.09.2016
11:49:26
просто у обычного ООП есть Class.new(blabla)

Nick
01.09.2016
11:49:44
лучше БЕЗ коллбеков
коллбеки — зло

Nikolay
01.09.2016
11:50:12
поэтому я и спрошаю что в модели есть аналогом def initialize

I
01.09.2016
11:50:36
коллбеки — зло
ну они ухудшают читаемость кода, но что еще тут предложить?
Фабрику сделать?
типа DomainGenerator.create(‘example.com’), а она уже все делает внутри себя и кидает обвешенный всеми данными объект?

ojab
01.09.2016
11:51:38
сделай метод full_name=, который заполняет name и zone и потом Domain.new(full_name: 'example.com'), как вариант

Nikolay
01.09.2016
11:51:52
а то у меня в одной модели есть уже
before_create :set_properties
в котором два десятка строк

Nick
01.09.2016
11:52:44

Nikolay
01.09.2016
11:53:17
но я посути хочу код хелпера который мне возвращает хеш сейчас всунуть в нормальную модель

Nick
01.09.2016
11:53:22
Мне субъективно фабрика больше нравится
> типа DomainGenerator

Nikolay
01.09.2016
11:53:59
что есть фабрика и чем оно мне поможет?
штука в чем - у меня есть строка example.com я из нее хочу сгенерить модель в которой name: example, zone: Zone.find_by и еще немного пропертисов

I
01.09.2016
11:54:52
паттерн фабрики(
ну вот, делаешь класс DomainGenerator, там статические метод для создания домена
внутри метода создаешь, к примеру, domain нужный, потом к нему применяешь все нужные твики
и возвращаешь его

Google

Nikolay
01.09.2016
11:55:50
и зачем мне это усложнение вместо Domain.new('example.com') ?

I
01.09.2016
11:55:57
=/

Nikolay
01.09.2016
11:56:11
и чем оно принципиально лучще текущего хелпера
так то я и хелпер могу доменГенератор обозвать, передавать в него строку и получать на выходе модель АР

I
01.09.2016
11:57:07
да ни за чем - ты задал вопрос, я ответил)
не знаю, что в хелпере сейчас, но если хелпер в модель чего-то напихивает - не совсем это хорошо для хелпера

ojab
01.09.2016
11:57:15
если ты хочешь именно Domain.new('example.com') (без указания аттрибута) — тебе нужно переписывать initialize в модели, что нехорошо

Nikolay
01.09.2016
11:58:15
ясно, спасибо

I
01.09.2016
11:58:30
Helpers для view обычно применяют. Ну, по логике-то)

Admin
ERROR: S client not available

Nick
01.09.2016
11:58:48
Почему PORO-модель не завести и в ней уже написать нормальный конструктор и кормить в AR-модель
Domain.new(poro_model.to_hash)

I
01.09.2016
11:59:14
лучше в гугл не вбивать PORO-модель x)

Nick
01.09.2016
11:59:21
Бгггг
На мой взгляд самый рабочий вариант

Nikolay
01.09.2016
11:59:45

I
01.09.2016
12:00:34
лучше в lib -> и в своей собственный класс

Nick
01.09.2016
12:01:12
Вы не ищете лёгких путей, я понял

Nick
01.09.2016
12:01:13
Или в папочку services…. сорян, кто-то должен был предложить вариант с сервис-обжектом

I
01.09.2016
12:01:46

Nick
01.09.2016
12:02:00
Не обязательно

Google

Nick
01.09.2016
12:02:01
Сервис объект — это паттерн фактически
PORO может быть чем угодно

Nikolay
01.09.2016
12:02:11
и чтобы без калбеков/хуков

Плюшка
01.09.2016
12:03:55
вон ojab предложил хорошую вещь (на мой взгляд)

Nick
01.09.2016
12:03:56
Как вариант написать свой класс-метод parse_and_initialize, например. И создавать объекты через него

Nikolay
01.09.2016
12:04:47
ххм

Nick
01.09.2016
12:06:11
«...и призадумалась, а сыр во рту держала»

Nikolay
01.09.2016
12:10:29
еще такой вопрос. у меня в модели есть несколько boolean полей (чото)_requirement. можно ли красивым способом получить нечто вроде where(requirements: true) ?
или в if ...

kolas
01.09.2016
12:11:14
создай scope

Nikolay
01.09.2016
12:12:05
а для if? мне просто надо дополнительные данные во вьюшке выводить, если одно из этих полей истинно

Evghenii
01.09.2016
12:13:32
может просто метод?
def required?
!test_requirement && test2_requirement
end
не бейте только за плохие советы)

Nick
01.09.2016
12:14:15
Тебе коллекцию моделей надо получить, где requirements true или просто во вьюхе показывать?

Evghenii
01.09.2016
12:14:39
ну а коллекцию scope да

Nick
01.09.2016
12:14:45
Если второе, то хелпер подойдёт

Evghenii
01.09.2016
12:14:56
видимо и то и то надо

Nick
01.09.2016
12:14:59
Если первое, то scope, как верно заметили

Nikolay
01.09.2016
12:15:16
просто хардкодить все эти реквайрменты ручками не хочется...

Nick
01.09.2016
12:16:11
Ну можешь красиво выйти на арену с method_missing