@rubyschool

Страница 424 из 921
Vlad
26.10.2017
06:20:16
Спасибо огромное за помощь, но должен все сделать сам, вплоть до поиска информации)

Антон
26.10.2017
06:21:58
Ааа, так я же за тебя не делаю. Смысл в том, что читать и делать будешь ты, но в том, что подскажут доки и где копать, не вижу проблемы. Вылижи этот проект, добавь всяких свистоперделок и будет у тебя уже что-то для показа при устройстве на работу. А еще лучше, сделай его, и попроси код ревью, где тебе покажут на ошибки и недочеты

Vlad
26.10.2017
06:24:47
по поводу "для показа", это хорошая идея, если тут пролечу, то буду вылизывать

кто на линуксе сейчас, помогите( Скиньте man любой программы с консоли на pastebin

Google
Vlad
26.10.2017
06:31:55
совершенно любой. Я хочу посмотреть пример оформления

Aynur
26.10.2017
06:33:39


Vlad
26.10.2017
06:34:11
Спасибо большое.

Olga
26.10.2017
06:38:15
Поставлю сперва mint 18.2
я уже 3 мес на последнем минт)) нормально все работает, забыла как винда выглядит ?

Nikolay
26.10.2017
08:23:44
Мне вот нужно удалить записи из базы по внешнему ключу из разных таблиц и получается один и тот же where(fk_id: id) к каждой модели. Как красивее написать такой код, подскажите

Nikolay
26.10.2017
09:56:35
нет, через active record

Vlad
26.10.2017
09:57:01
@nikolay0 я бы сделал так-нибудь, например ActiveRecord::Base.descendants.each do |model| model.where(fk_id: id).each(&:destroy) if model.superclass == ApplicationRecord end

Если тебе прямо везде надо

Nikolay
26.10.2017
10:01:11
это по всем возможным моделям пройдется?

Vlad
26.10.2017
10:01:23
Ну да

Nikolay
26.10.2017
10:02:13
круто, коротко как. Спасибо, разберу и попробую

Vlad
26.10.2017
10:05:06
Ну или можно массив прописать массив из констант класса [Product,Order,Page].each{|model model.where(fk_id: id).each(&:destroy)}

Google
Vlad
26.10.2017
10:06:22
Еще меньше кода, например. А в коде до этого есть еще проверка на тип класса. Там просто выводит еще промежуточный абстрактный класс ApplicationRecord, который нам не нужен, и еще какие-то там, всякие ненужности)

Nikolay
26.10.2017
10:06:55
но если моделей много, массив только подготовить

Vlad
26.10.2017
10:16:12
Вообще есть нюанс, можно рефакторить до бесконечности

Nikolay
26.10.2017
10:17:39
первый?

Vlad
26.10.2017
10:22:50
Во-первых :delete а не :destroy надо, ибо в случае если записей много то код с :destroy будет удаляться инициализируя классы и вызывая колбэки.

Fedor
26.10.2017
10:34:07
тут есть момент

destroy инициализирцет классы, и удаляет связаныне модели, которые dependent: :destroy

если использовать delete, то они остануться

соответсвенно, надо либо использовать destroy, если такие модели есть, либо помнить про них и потом тоже удалить

delete просто удаляет, но each(&:delete) пройдет по каждому элементу и дернет запрос в БД на удаление

это известная проблема n+1 запроса

Vlad
26.10.2017
10:35:39
Отвлекался на работу, уже сделал, теперь отписываюсь. Так по идее правильнее, без each блоков. Просто создаст SQL запрос) Что-то я не проснулся и написал выше ужасный код) [Product,Order,Page].each{|model model.where(fk_id: id).delete}

Fedor
26.10.2017
10:35:50
что бы такого не было, надо использовать delete_all

O
26.10.2017
10:41:56
я уже 3 мес на последнем минт)) нормально все работает, забыла как винда выглядит ?
Вчера снес 17.1 и поставил 18.2 , после установки grub багнул :D в конце концов восстановил и пошел смело спать завершив дело :D

Olga
26.10.2017
10:43:43
молодец))

Nikolay
26.10.2017
11:01:26
Так в итоге как лучше? ) так сказать финальная версия

Vlad
26.10.2017
11:25:56
rubocop поправит :)

Konstantin
26.10.2017
11:27:08
Считаю, что лучше самому за собой следить :3

Vlad
26.10.2017
11:31:54
@nikolay0 ну в итоге если нет связанных моделей, и нет колбэков связанных с удалением, то подойдет model.where(fk_id: id).delete_all чтобы не трогать рельсу, а просто запросом удалить все

Google
Olga
26.10.2017
11:41:26
мм.... установила rubocop, запустила..... ппц... ? новичкам он полезен да ? правильно хоть исправляет, точнее подсказывает как надо красиво писать ?

Fedor
26.10.2017
11:43:26
я там все варианты вроде расписал

Nikolay
26.10.2017
11:44:39
Понял, спасибо

Andrey
26.10.2017
11:52:45
мм.... установила rubocop, запустила..... ппц... ? новичкам он полезен да ? правильно хоть исправляет, точнее подсказывает как надо красиво писать ?
у нас rubocop как и тесты обязательно должны проходить )) Первое время бесил меня, сейчас на автомате делаю сразу как он просит ))

Olga
26.10.2017
11:53:33
аа даже так, понятно, значит прислулаюсь к новому гему)) спасибо!

Olga
26.10.2017
11:59:06
understand))

Антон
26.10.2017
12:00:36
Все так. У нас рубокоп автоматом в гитлабе запускается, и пуш не пройдет, если у него есть претензии ))

Olga
26.10.2017
12:01:24
о как! ? значит must have)) ok))

мм... еще вопросик.... стоит ли изучать вообще скафолд? просто во всех изданиях пишут, что это г.... и тем не менее везде про него описывается ? кто то им пользуется в природе ? ))

Fedor
26.10.2017
12:14:03
что ты имешь в виду под scaffold?

Olga
26.10.2017
12:14:47
ну я так поняла, что когда одной командой генерится куча кода в папках, а потом хз что и где находится))

Fedor
26.10.2017
12:15:27
ну он создает контроллер сразу с crud методами

но чаще всего их приходится переписывать, а я вообще crud вынес модуль и подключаю его где надо

так что сам не пользуюсь

но в целом удобно создать по быстрому простой контроллер именно под crud

изучать там особенно нечего, пишешь команду, он создает контроллер и тесты к нем

и все

Olga
26.10.2017
12:16:59
ага понятно, погляжу значит, спасибо Федор )

Google
Fedor
26.10.2017
12:22:09
не за что

Nikolay
26.10.2017
13:03:02
а еще посоветуйте как проще для тестов восстанавливать базу назад на деве? у меня sqllite, полагаю просто файлик можно подкладывать, но на всякий случай спрашиваю

Andrey
26.10.2017
13:28:09
мы используем DatabaseCleaner гем

получается для каждого теста чистая база

Nikolay
26.10.2017
14:40:21
ну мне не для рспека, а вручную проверить. Узнал про песочницу rails console -s вдруг кто не знает )

Nikolay
26.10.2017
14:46:59
консоль рельс в песочнице запускается sandbox

потом все что изменишь в базе назад вернется

Tanya
26.10.2017
14:47:26
так если в консоле не писать .save оно тоже вернется все

spartakusQ
26.10.2017
14:47:26
Прикольная штука.

Nikolay
26.10.2017
14:47:33
ага

Tanya
26.10.2017
15:09:03
можно ли errors во вьюхах, закинуть в папку layouts или для них нужно создать какую-то определенную папку?

Vlad
26.10.2017
17:27:28
Как корректно проверить строку "123" вся она из 0-9 символов или присутствует лишнее что-то?

Konstantin
26.10.2017
17:32:00
Vlad
26.10.2017
17:48:26
Да, я понял, только регулярку не могу составить корректную.?

Oleg
26.10.2017
17:52:51
/\d+/ вроде

счас нет консоли под рукой

Vlad
26.10.2017
17:56:44
Не много не то, это пробовал. При использовании =~ проверяет есть ли в строке числа, а не состоит ли только из них. Либо я оператор сравнения не тот юзаю?

Aleksey
26.10.2017
17:58:07
А /0-9/

Google
Aleksey
26.10.2017
17:58:21
Ну или как-то так, нет?

Vlad
26.10.2017
17:59:24
пробовал. вообще nil на возврате

Aleksey
26.10.2017
18:00:05
^[0-9]+$

Konstantin
26.10.2017
18:00:15
https://regex101.com тут удобно тренироваться. Вроде бы нужно задать начало строки, диапазон, число вхождений и конец)

Aleksey
26.10.2017
18:01:00
Ну вот мой вариант начало строки диапазон + значит 1 или более и конец строки

Vlad
26.10.2017
18:02:49
Принял и понял в чем суть, спасибо парни) Сайт юзаю для проверок этот тоже)

Vitaly
27.10.2017
04:06:03
http://www.akitaonrails.com/2017/10/24/replacing-rvm-rbenv-nvm-etc-for-asdf?utm_source=rubyweekly&utm_medium=email

Замена  RVM, NVM and etc.

ToshiDono
27.10.2017
05:13:36
Всем привет. Вчера услышал мнение, что хуки в рельсах - это зло и ими лучше не пользоваться, а писать вместо них свои классы, и запускать их из нужного места. Т.к. опыта у меня мало, хочу спросить, так ли это. Действительно ли хуки могут сильно усложнить поддержку проекта?

Ro
27.10.2017
05:41:31
а что за хуки?

в моделях или контроллерях?

вообще, чем больше маленьких независимых друг от друга классов - тем лучше

Henry
27.10.2017
05:42:46
Имеются ввиду колбеки? Они не то чтобы зло, просто иногда бывает так (по моему опыту), что проект растет, и возникают новые и новые потребности, о которых сложно было предположить вначале) И колбеки начинают мешать. Например у тебя стоит колбек, что при обновлении сущности что то происходит. И эт ок. Но потом, с ростом проекта возникает потребность чтобы люди могли массово обновлять эту сущность (например загружают файлом). И в этом случае, колбек который сработает на каждое изменение не оч крутая идея

Ro
27.10.2017
05:42:56
каждый класс - своя микрозадача, не более

но это как бы рейлс. Поэтому без них сложно, практически невозможно

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

ну и DHH рекомендует разбивать все на маленькие части, вот например про контроллеры: http://jeromedalbert.com/how-dhh-organizes-his-rails-controllers/

Vlad
27.10.2017
05:52:39
Пипец к хорошему быстро привыкаешь. Теперь на работе код зачастую пишу так, если бы делал это на ruby...? А потом исправляю сижу, тк нифига не работает ?

Страница 424 из 921