Предыдущий тред: >>1401044 (OP)ИЗУЧЕНИЕ ЯЗЫКАQ: C чего мне начать, чтобы стать рубистом?A: Отличным началом будет Programming Ruby (The Pragmatic Programmers Guide), читать Eloquent Ruby и The Well Grounded Rubyist после прочтения первой толку особо не даст, одни и те же вещи, дальше читаем Ruby Way, затем познаем метапрограммирование с Metaprogramming Ruby.А дальше открываем Ruby cookbook 2015 года, Пишем свой код во время чтения.Q: Следующий уровень, продвинутые книги по руби:A: Confident Ruby by Avdi Grimm | Practical Object-Oriented Design in RubyRefactoring Ruby Edition | Ruby Under a MicroscopeQ: Онлайн курсы чтобы попробовать/вкатиться:A: http://tryruby.org/levels/1/challenges/0/ | https://rubymonk.com/http://www.codewars.com/?language=ruby | http://rubykoans.comQ: Какой gem посмотреть, чтобы понять, как писать код?A: Лучше всего посмотреть небольшие gem'ы вроде cancancan, pundit, camping.Еще можешь полистать на гитхабе гемы с нарастающей популярностю (там еще нет тысяч строк, и тебе будет легче понять): https://github.com/trending?l=rubyQ: Хорошие практики по руби и рельсам?A: Обязательно стайлгайды (как оформлять код):https://github.com/bbatsov/ruby-style-guidehttps://github.com/JuanitoFatas/fast-rubyhttps://github.com/bbatsov/rails-style-guideРуководства "для чайников":https://www.railstutorial.org/book [en]http://www.theodinproject.com/ruby-on-rails [en] | http://codenamecrud.ru/ [ru]Еженедельная рассылка с новостями из руби мирка:https://rubyweekly.comПрочая годнота:https://github.com/markets/awesome-rubyQ: Документация по стандартным библиотекам руби и рельс:A: http://ruby-doc.org/ | http://api.rubyonrails.orghttp://guides.rubyonrails.org | http://ruby.railstutorial.orgQ: Можно ли на руби писать нативные GUI, мобильные приложения, игры?A: Да, но не стоит.Q: Что ещё изучить?A: Английский, git, linux. Паттерны. Один из часто используемых - Service Object.СРЕДА РАЗРАБОТКИQ: Как установить разные версии рубей?A: https://rvm.io | https://github.com/sstephenson/rbenv | https://github.com/asdf-vm/asdf
О, впервые за 3 года додумался заглянуть в руби-тред на дваче. Ну-ка расскажите, что обсасываете тут? Из насущных проблем - понял, что никогда больше не буду валидации в чейнджсеты пихать. Впизду эту борозду, просто нахуй!
>>1451678Решаем умер руби или нет. Иногда отвечаем на ньюважные вопросы. Ждем выхода 3.0, где ВСЕ БУДЕТ. Поясняем с трудом почему стоит выбирать руби, а не го/питон/джаваскрипт/скалу/хаскель. Насмехаемся на виндошизиком, но его в последнее время что-то не видно, вместо него эликсирошизик.
>>1451683Я, если честно, тоже затрудняюсь сказать, зачем нужен руби, кроме как довольно красивого кода и скорости разработки :/ , хотя вот уже как 3 года на нем пишу. Это как с иностранными языками - тип лежит душа - ты и учишь. Попутно пишу еще на Rust и изучаю Elixir (я не ваш эликсирошизик, я только в тред вкатился).
>>1451671 (OP)рубин в хоусеки (который появлялся только в флешбеках в манге) носил понитейл, а тут на одной пикче распущенные волосы, а на второй вообще каре почти как у шинши
>>1451697Раст не нужен особо, а эликсир правильно.Можешь быть привыкнешь к нему и сделаешь выводы, отчего руби плох.
>>1451697>довольно красивого кода и скорости разработкиТак этого уже очень неплохо. Не забудь прибавить к этому массивную экосистему и традицию писать хорошую документацию и покрывать все тестами.>>1451783А вот и он.
>>1451783Не знаю, давай не будем спорить о том, что нужно, или не нужно. Раст - тоже элегантный и очень быстрый язык. В элик посредством Rustler можно встраивать NIFы на нем. Ну и я на нем эмулятор N64 написал до стадии, когда обрабатываю инструкции проца. Дальше времени перестало хватать.К элику я уже подпривык, мне очень нравится. Возможно, когда-нибудь буду его в продакшене использовать.
Аноны, в шапке книги на ангельском, я в него ещё вкатываюсь, пока что читать на нем не смогу, есть что-то на русском? Спасибо.
>>1453199Поверхностно ознакомиться - https://www.ruby-lang.org/ru/documentation/quickstart/Потом иди на www.codecademy.com, найди там Ruby, открой гугл переводчик, решай простые задачки.
>>1453526Для поделок можно и на винде. К сожалению, большая часть широко используемых гемов (сторонних либ) на винде или не скомпилится, или скомпилится через хуй пизду. Для продакшена серьезного винда категорически противопоказана. Поиграться и изучить язык и даже Rails - можно.
>>1453526Есть ещё JRuby. Он кроссплатформенный, естественно.Одно время его рекомендовали, как раз, для винды.И он даже несколько быстрее нативного.Руби - очень тормозной язык, с никакущей многопоточностью.И джава версия это дело, отчасти, лечит.Гемов полно. Рельсы запускаются.Разрабатывается весьма активно.Сам я, правда, лет триста его не трогал.
>>1453696Можешь сразу тогда передумывать в программирование вкатываться. Для всего кроме C# линукс/мак это дефолтные ОС.
>>1453598Конкретный пример привести можешь?Там не всегда последняя версия по совместимости, это да.А так - очень даже совместим.На винду ставится инсталлятором, ебаться с jvm не надо.Короче - стоит того, чтобы попробовать.>>1453526>>1453696Есть ещё вариант использовать бесплатную онлайн IDE.Их есть сейчас несколько. Там можно делать большие проекты, а не только побаловаться.Возможно, это будет лучший вариант для вката, т.к. вообще никаких накладных расходов.google: ruby online ide free
>>1453711Потом обратно зато переходить не захочешь. Ну вообще на винде можно кодить. Плюсы, c#, вроде даже Rust нормально на винде. Elixir точно. JavaScript - само собой. Но условно для кодинга - linux - это дефолт.
>>1453712Unix изначально был создан программистами для программистов.Unix с человеческим лицом называется Mac OS.Но, линукс потихоньку тоже эволюционирует.Поставь себе Virtual Box, накати на него Ubuntu, и будет тебе счастье.Или юзай онлайн IDE, repl.it, например.Там тоже стоит линукс, ты видишь консоль, можешь писать не только код, но и скрипты, и т.д.
>>1453756я абсолютно серьезен,я в как то в пару тредах спрашивал,меня обоссали...там постоянно ошибки,то несовместимость,в итоге чисто случайно нашел решение на форуме юбунты,которое НИГДЕ блять не упоминалось,а перерыл я достаточно
>>1453746Я рил не понимаю, что у тебя было не так. rbenv ставится быстро, руби через него - быстро. Рельса - тоже. Там есть некоторые проблемы с нашим проектом на работе (какие-то гемы не ставятся без зависимостей) - в ошибках указано, что не скомпилилось. Гуглится минуту, какой пакет поставить - ставится и все.
Почему рубитред такой отзывчивый и ламповый по сравнению со срачами жсмакак? Пхпшники кстати тоже ничего такие.
>>1453799Есть opal - компилятор ruby в js, но особой популярность, как и другие компиляторы в js, кроме ts, он не пользуется, хотя работает вроде как стабильно. В Японии достаточно популярен mruby для эмбедед. Есть RubyMotion для мобилок, для десктопа тоже есть всякие shoes и биндинги к qt/gtk, но они совсем дохлые как и нативные приложения для десктопа. Но 90+% это бекенд, конечно.
>>1453799Для админских скриптов ещё. Вместо перла и питона.Напр. см. Homebrew для Mac OS - менеджер пакетов.Есть книжка про это, не помню названия, но, что-то очевидное.Поройся на allitebooks.com - там есть поиск.
>>1453799Что-то по типу дженкинса есть для мобилок - 99% руби. 28к звезд гитхаб. хомебрью.Я лично использую для скриптов. + Чуток на работе. В основном сижу на эликсире.
>>1453987Кристал никогда не взлетит.Как матц сказал, если в 90 языки от ноунеймов могли взлететь, то сейчас только компании. Элик пожалуй исключение.
>>1453943Атом на десктопе, vscode на ноуте. Хочу давно полностью на код перекатиться, так как он заметно быстрее, но какой же там уебищный поиск, только из-за него на атоме сижу. Issue об его улучшение с сотнями комментов висит на гитхабе уже пару лет, но воз и ныне там.
>>1453997Вспомнили бы. Я, как минимум. Я тоже в него вкатываюсь, и пока мне все нравится, как уже выше говорил. Годнота же. Но я и в Раст вкатываюсь, и ML на питоне пишу иногда, так что я - не показатель, наверное. Мне просто все нравится.
>>1454037Я там issue оставлял в соларграф и куда-то еще. GotoDefinition работает в моем проекте рабочем 12 секунд. Сука это пиздец. Sublime - моментально все. В итоге перешел на вим. Потому что могу.
>>1453943>Какой IDE вы пользуетесь? VScode с плагином rubocop, натягивает выдачу копа прямо на редактор, очень удобно.
>>1454102> ставитЬсяСегодня спутал "ться" и "тся"А завтра - плачешь, хуй сосяНа каком, блд, "линуксе"?Их хуева туча.Может стоять старая версия по тысяче причин, это нормально.Но, обычно - потому, что стабильная и проверенная.Новые версии - новые баги.На свой страх и риск - ставь последнюю.Если поиграться - вообще похуй.
>>1454312Ну изначально мне нужна была возможность копировать в OS буфер обмена. У штатного установленного вима какой-то вафел решил убрать этот флаг, и надо было бы вим пересобирать из исходников с флагом. Решил, что проще накатить neoVim и прокинуть алиас на вим. Все плагины подхватились, как влитые. Вдобавок получил более плавный скроллинг, вообще работа в виме визуально стала более плавной. Еще у него там API для многих языков, чтоб плагины писать, но я не пишу плагины для вима, так что для меня это осталось за кадром.
А у Ruby девелоперов есть тесная связь с другим каким-либо языком? Я имею в виду что вон условный рубист, он обязательно хорошо знает еще что-то, или нет такого?
>>1454571Многие рубисты по совместительству фронтом занимаются, так что большинство вполне неплохо владеет js.
>>1454676Тебя забанили на хедхантере или что?Или должны быть какие-то секретные рубистически ресурсы?В России их нет.
>>1454861When someone shared this charts I like it. Do u now youself? u're daun. Why? cause Java bit all framework stuff. But nobody like java, because it's awful and painfull code.A teper', shut up and go away.
>>1454769Алилуя!>>1454861Откуда вы блять лезете со своими сравнениями по скоростям? Скорость работы далеко не первое на что смотрят при выборе фреймворка и языка.
Вангую, через какое-то время туда прикрутят хуйню для интеграции с AI для всяких suggestion функций и назовут ее ActionAIхыы
Везде в вакансиях нужен минимум год опыта на рельсах, вот и вкатывайся в язык который нравится после этого.
>>1455521Дешевле? Да.Проще? Не факт. И уж тем более потом не проще поддерживать лапшу на PHP. Если тебе нужно что-то совсем простенькое, то какого-нибудь Вордпресса хватит. А если расчехлять Ларавель, то смысла нет, проще и быстрее Рельсы как раз-таки.>>1455445Не на всех, иногда проскакивают и джуновские вакансии.А вообще это классика, делаешь пет-проект, пиздишь про полгода опыта и вкатываешься. Я сам вкатился в IT через Руби Хоть сейчас и JS стек, если желание есть и шаришь, то вкатишься.
>>1455558Твой собственный проект на любую тематику. Имиджборда, опен-сорс библиотека (гем в случае Руби), веб-сайт, что угодно.
>>1455556>что-то совсем простенькое, то какого-нибудьречь была малые и средние проэкты,а не простенькоеи на пхп можно сразу писать.а не пройти путь ЯП-фреймворк>А если расчехлять Ларавель, то смысла нет, проще и быстрее Рельсы как раз-таки.чем ларка не нравиться?там тоже есть библиотеки для множества вещей
Есть ли сейчас смысл по состоянию на середину 2019 и предположим начало 2020 вкатываться в руби? Как с работой и стажировками? Мертв ли руби?
>>1455587Работа, и стажировки и даже курсы есть. Но, безусловно, вкатиться в Руби не так просто, как в JS.>Мерти ли рубиhttps://isrubydead.com/
>>1455592Очевидно затем что Руби самый кайфовый язык с динамической типизацией, приятный синтаксис, большая экосистема, топовый МВС фреймворка для веба.
>>1455595Если видишь мелкобукву, которая не ставит пробелы после знаков препинания, то просто игнорируй его. Это местный дурачек.
Любезнейшие, а есть какой-нибудь гид по бэкенду на Ruby? Типа что нужно изучать шаг за шагом, какие технологии помимо рельсов и все в таком духе. Я понимаю, что есть в шапке, я немного об ином. Если кому-нибудь будет не трудно раскидать в паре предложениях, то буду очень признателен.
>>1455663Рельсов хватит для всего. Если у Shopify 80к запросов в секунду и они хорошо себя чувствуют (5 рельсы), то думаю маньке с Двачей и его "видеостримингом" хватит с головой.
>>1455610Имею за плечами 3 года опыта. В свое время вкатывался, начиная с этого видеокурса - rubyschool.us
>>1455674Какое отношение твои говнотесты имеют к реальному проду?https://twitter.com/dhh/status/885776244532551680?lang=en
>>1455680https://www.slideshare.net/jduff/how-shopify-scales-rails-20443485Презентация о том как они скейлили РельсыЭто еще с 2013 года, там 50к реквестов в сек.
Эх мой любимый рубинчик за что тебя обзывают блин :3 по-моему ты очень няшный и сильный язычок, никого не слушай
>>1455610Слишком абстрактный вопрос, используемые технологии зависят от проекта. Есть очень неплохой сайт с гемами сгруппированными по решаемой задаче - https://www.ruby-toolbox.com/categories, хорошо бы его, кстати, при следующем перекате в шапку добавить.Но я попытаюсь написать то что приходит в голову и то что как мне кажется стоит попробовать заранее, а не изучать по ходу дела. Из того что будет нужно почти на любой работе: sql (обычно postgresql, реже другие БД), redis, sidekiq, rspec если на работе нету тестов, то беги при первой же возможности. Реже, но тоже встречается достаточно часто: rabbitmq, actioncable/anycable, elastic, docker. Часто могут пригодиться базовые умения администрирования линукса: настроить nginx, бд, в целом перейти от чистой машины к машине обрабатывающей продакшен запросы (скорее всего тебе этого делать не придется, то все равно неплохо бы понимать что происходит на продакшене), если ты еще и все это сможешь автоматизировать с помощью какого-нибудь ansible и docker, то вообще можешь переквалифицироваться в девопсы когда руби умерет.Отдельно еще раз упомяну владение БД, тут и банальное понимание когда надо добавить какие-то индексы, и умение подкрутить настройки, настроить статистики, и разобрать вывод explain, и способность прочитать/написать/оптимизировать sql-запрос в несколько десятков-сотен строчек - все это охуенно ценные скиллы, но почему-то достаточно редко встречающийся у рубистов (и не только) скилл.
>>1455732Да. На нем все еще куча как новых стартапов, так и активно развивающихся проектов. Просто он непопулярен в СНГ, но посмотри вакансии по миру.То что ты, шизик, высрал hello,dvach и начитался статеек про Ruby is dead ничего не значит.Популярность может падать вниз потому что популярность MVC фреймворков в целом падает, т.к. сейчас все дрочат на микросервисы и SPA. Но это не значит что Рельсы перестали быть отличным выбором для веб-разработки.
>>1455761Добавлю, что даже для джунов в снг есть вакансии, хоть и не в таком количестве как на js например
>>1455610>Любезнейшие, а есть какой-нибудь гид по бэкенду на Ruby? Типа что нужно изучать шаг за шагом, какие технологии помимо рельсов и все в таком духе.
>>1455814>Те части сайта, которые должны работать предсказуемо и надежно, пишутся на проверенных технологиях и языках. CMS написана на Ruby on Rails — этому фреймворку уже больше десяти лет, и непонятных ситуаций с ним возникает куда меньше, чем с более новыми разработками.>Meduza.io
>>1455832Жопаскрипт на стороне клиента оф кос.С, С++ занимается всякими кодировками, перекодировками.Go отвечает за апи и трудности типа поискае.Ruby за всю прочую возню.
>>1456273Я в июле вкатился. Уже получил зарплатку, правда неполную, так как к концу месяца начал работать. 2к, джун
>>1456351Просили оплачиваемые тестовые задания выполнить, судя по истории чата в слаке не многие смогли хотя бы через первое пробиться.>>1456355Да, это так. Но работу не искал, просто книжки читал, просто услышал что на апворке коннекты убирают, решил попробовать.
>>1456369Почти что.Но я рельсы только по туду листу освоил. Не знаю куда дальше идти.Присматриваюсь к https://hellorails.io/
>>1456371у него на ютубе есть куча гайдов где он делает штук 5-6 приложений.Но мне не нравится что он на туду понаставлял кучу гемов связанных с UI и получшим выводом ошибок - я просто в шоке сидел.
>>1456371Еще ничего лучше https://www.railstutorial.org/ не придумали.Если ты не можешь его осилить, то и дальше не осилишь.
>>1456361Не знаю, может и есть. Конкретно я из мухосрани и к перерезду не готов был, поэтому вариант с поиском работы в ДСах не пробовал. Может прокнет, как грицца стучитесь и вам откроют.
>>1456788Ну некоторые вещи просто удобнее и привычнее.Взять тот же ROM - сломаны алиасы as: :something.Например: belongs_to :base_user_game, as: :user_gameВ аггрегирующих функциях, если прокинуть этот алиас, не будет работать ни aggregate(:base_user_game), ни aggregate(:user_game). И это баг, который к мажорному релизу, вроде как, поправили (там другой ROM используется). Аггрегаты нужны потому, что ханами по дефолту не умеет в User.first.parents.first.car.seats.last . Ему надо вручную аггрегировать такие вещи под каждый запрос через репозиторий. Я слышал много хвалебных вещей в сторону разделения Entity и Repository, касаемо того, что бизнеслогика - в энтити, запросы к БД - в репозитории. Таким образом можно будет не переписывать бизнес-логику приложения, если захотим сменить БД с релятивной, например, на монго. И в таком случае ентити-репозиторий подход может помочь меньше ебаться. Однако уже на стадии разработки ебаться приходится гораздо больше, нежели чем с АктивРекорд подходом. Плюс еще фабрики с этим работают очень плохо, если хочешь сделать кольцевые зависимости. Условно, у тебя есть цепочка User -> has_many Parent -> has_many Car -> has_many Seat. И вот нихуя не получится сфабриковать пользователя, к нему двух родителей, у каждого из которых будет по машине с 4 сиденьями. Получится это сделать в самих тестах вручную. Автоматически не выйдет ни с одним знакомым мне гемом-фабрикатором. Самому только если написать :/
Хочу обсудить тему кэширования, понятно, что активрекорд тормозной и по возможности нужно его избегать, например, необязательно дергать базу данных если записи не изменились с последнего запроса. Сейчас я набросал такую схему - модель Батя имеет отношение has_many к Пиво, у бати есть поле - початое_пиво_cache_key, есть методы - пить_пиво, выбросить_пиво. У модели Пиво висит коллбэк на after_commit - Батя#выбросить_пиво. Батя#пить_пиво достает по ключу Пиво, если по ключу ничего нет - лезем в базу данных за пивом и кидаем его в кэш. Если Пиво каким-то образом изменилось, оно сообщит Бате коллбэком #выбросить_пиво.Вроде бы всё нормально, Батя не лезет в базу при попытке попить пива, если с пивом что-то случается - Батя берет новое. Есть ли какие-то подводные камни у такого подхода?Нормально вешать такое поведение(вызов метода из другой модели) на коллбэк after_commit?Используете ли вы что-то подобное у себя?
>>1456895Обычно вешают через after_commit, да.https://scotch.io/tutorials/how-to-improve-website-performance-with-caching-in-railsНо я рекомендую по возможности избегать коллбеков и лучше делать это сервисом отдельным, когда ты пытаешься поменять сущность Пиво. Таким образом ты всегда будешь понимать, что происходит.UpdateBeerService.new(beer, params) - и там транзакционно обновлять и кэш у БАТИ. Это не всегда элегантно, но всегда понятно, что происходит. Но традиционный путь - как ты написал, через after_commit. Почитай статью.
>>1457223Ну смотри, если тебе нужно просто обновить сам гемчик, чтобы создавать новое приложение не в 5.2, а в 6.0, то всё очень просто:$ rails -vRails 5.2.3$ gem install rails$ rails -vRails 6.0.0
>>1457223Если тебе нужно обновить уже существующее приложение с 5.2 до 6.0, то:в Gemfile меняешь строчкуgem 'rails', '~> 5.2'наgem 'rails', '~> 6.0.0'потом запускаешь$ bundle updateпотом$ bundle exec rails app:updateвсё время жмёшь Yпотом проверяешь через$ git diffне потёрлось ли чего важного из твоего кодаГОТОВО!Подробнее:https://guides.rubyonrails.org/upgrading_ruby_on_rails.html
>>1456572Поверь мне, из начавших книгу осилило ее не больше пары процентов вкатывальщиков. Она простая в основе, но требует хорошего technical sophistication.Очевидно, дальше делаешь свой пет-проект попутно гугля все проблемы и куря https://guides.rubyonrails.org/Из книг дальше можно читать Agile Web Development with Rails или Rails 5 Way.После этого уже ищешь работу.
>>1455670Они кстати уже крутят 6.1 на продакшене, при этом у них самый большой рельс-проект в мире.https://twitter.com/jmwind/status/1163924270994612224
>>1457295>Из книг дальше можно читать Agile Web Development with Rails или Rails 5 Way.Что лучше?На этой книге я пока на 5 главе.мимодругой.
Господа, есть один стартап, стоит ли его сейчас апгрейдить с 5.2 до 6.0 или немного подождать, пока коммьюнити потиху начнет перекатываться?
>>1457333Rails 5 Way посолидней будет по моему мнению. Она более практичная что ли, да и кроме самых рельс еще и освещяет экосистему и популярные гемы.railstutorial надо закончить чтобы уловить полностью процесс разработки от 0 до прода и увидеть все части фреймворка при этом не закапываясь на месяцы + вообще понять тебе заходит или нет.
>>1457411Зависит от размера кодовой базы. Если допустим там моделей не больше 30 и ты не юзал ActionMailer (он теперь ActionMailbox и по-другому работает), то можно и апгрейднуться. Там по сути кардинально мало что поменялось.
>>1457442Да, пока еще меньше, мэйлер немного юзал, но думаю там быстро будет переписать. Два имейла-то, хули там. Спасибо за ответ.
mysql, как вытащить значения из decimal(10,2)Например FLOOR(column_name) просто втаскивает целое число, а после запятое не забирает, а нужно забрать рубишный флоат.
>>1458014Это клиента для подключения к БД на рубийной стороне зависит. Во что он распарсит значение полученное из базы, то ты и получишь. Что сейчас возвращает простой запрос значения к базе без всяких FLOOR?
Руби душит. Сейчас качаю себе через терминал файл с использованием openURI. Как можно сначала узнать размер файла? Копать в сторону Net::HTTP ?
>>1458062Ты издеваешься?irb> open("https://2ch.hk/pr/src/1451671/15655552159190.png") {|f| puts f.length}70541(это в байтах, можешь разделить на 1024 и получить в килобайтах)
>>1458062На лицо непонимание того как работает openURI, сначала с этим разберись и вопрос сам по себе отпадет.
>>1458228>сначала с этим разберись и вопрос сам по себе отпадет.Разобрался https://ruby-doc.org/stdlib-2.6.3/libdoc/open-uri/rdoc/OpenURI/HTTPError.htmlпроверяй.Пиздец уебищные доки.
>>1458252Тебе выше скинули уже ответ на SO, просто надо хедер content-length проверять и все. Если его нет, то никак, недокачав до конца, не узнаешь.
>>1458281Этот кретин просто документацию об ошибке открыл.https://ruby-doc.org/stdlib-2.6.3/libdoc/open-uri/rdoc/OpenURI.html
>>1458294>Этот кретин просто документацию об ошибке открыл.А что я еще должен открыть, если там 2\3 так же выглядят. Например, я захотел почитать как ловить ошибку - хуй мне.Погуглил в общем пространстве - ни одного поста про то как юзать опен УРЛ. Все только u shouldn't do this be aware, и в прочем духе.Все больше убеждаюсь, что в скриптинг руби пиздец какой хуевый.
>>1458310>А что я еще должен открыть, если там 2\3 так же выглядятДокументацию по OpenURI, очевидно же. В поиске по "openuri" ссылку которую я скинул первой выдает.>Например, я захотел почитать как ловить ошибку - хуй мне.Так же как и любую другую ошибку с помощью rescue. С чего бы документация какой-то конкретной ошибки будет содержать описание общей функциональности языка?>Погуглил в общем пространстве - ни одного поста про то как юзать опен УРЛВесь модуль это одна сранная функция, тебе статья нужна по каждой функции в языке что ли? Хочешь чего-то более гибкого юзай Net::HTTP или HTTParty тот же, по ним хватает статей.Кстати, в той ссылку, что я скинул есть и ссылка и на более подробное описание аргументов https://ruby-doc.org/stdlib-2.6.3/libdoc/open-uri/rdoc/OpenURI/OpenRead.html#method-i-open
>>14583300.3116e3 это и есть 311.60, просто руби так BigDecimal выводит. Можешь to_s на результате вызвать, что бы увидеть это число в более привычном формате.https://en.wikipedia.org/wiki/Scientific_notation#E-notation
Смысл вката в руби? Вакансий очень очень мало + js по любому надо знать дополнительно, лучше во врот енд вкатывайтесь.
>>1458367Язык же выбирают не только по легкости вката.Вакансий нормально, тебе нужно не 100 вакансий, а всего одна.
Никак не могу перестать метаться, чуток потыкал рельсы, потом чуток феникса. Можно с двумя сразу на позицию ждуна залетать?
Где искать разработчиков Elixir, если не в Ruby-треде?Совсем свежий стартап внутри уже-скоро-7-лет-как-на-рынке продукта на стыке CX и маркетинга. Внутри CDP, CGC-механики и квадриллион чего еще.Стек вперемешку: Elixir, Java, Ruby, Postgres, Kafka, ArangoDB, GraphQL, TypeScript, Vue…Ищем Эликсиро-господ, а также желающих вступить в наши редкие ряды. Фронт писать не нужно, а немного Ruby и/или Java было бы полезно. Можно не знать Elixir, главное — уметь программировать.Вилка: 150-180к₽. Думаю, можно попробовать больше, если ты ну прям умный.Команда порядка 10 человек. Над продуктом работаем втроем. Трудимся в ламповом офисе в 5 минутах от Электрозаводской, где есть кофе и все такое.Сайт текущего продукта: aplaut.comМой TG: @yet_another_pirateОтвечу на многочисленные вопросы аудитории в треде.
>>1458666>главное — уметь программировать.растяжимое понятие>а немного Ruby и/или Java было бы полезно.>Вилка: 150-180к₽.Здесь минимум 2-3 года работы на боевых проектах.Немного.Ага.
>>1458670Я похож тут на Кобейна? Мне так говорят>>1458675Денег немного? Программисты от 300к начинаются? Сориентируй.
>>1458682>Денег немного? Для удаленки да.>Программисты от 300к начинаются? от 250+>Сориентируй.Сориентировал.>Я похож тут на Кобейна? хуй знает кто это.
>>1458666Здесь нет работы на такое количество стаффа и такой стак. 3-4 человека максимум и полвоина приведенного тобой стака - это параша, которую кидают тебе на уши ненужные в команде люди.
>>1457248На счет 5.2 До 6.0 не знаю. Но если я свой 3.6 до 5.0 хотя бы обновлю, я охуею от того, сколько всего отвалилось.
>>1459011Благодарю!Еще вопрос.puts a просто выведет содержимое переменной a, насколько я понимаю.p a эквивалентно puts a.inspect.Но что делает инспект? Объясните, пожалуйста, как можно понятнее.
>>1459091Инспект это просто метод класса Object, то есть любой класс в Руби его наследует.Инспект представляет объект в читаемой для человека форме. Он выводит имя класса, id объекта и список инстанс переменных и их значения (вызывая на них в свою очередь inspect).В идеале созданные классы должны переопределять метод inspect и удобно выводить инфу про объект в виде строки.https://ruby-doc.org/core-2.6.3/Object.html#method-i-inspect
>>1459155Я читал эти доки, но а на практике?Вот я делаю a = 'abc'puts a выводит 'abc'p a выводит 'abc'Не могу понять где именно этот инспект используется на практике.
>>1459173Да, выводит просто строку потому что у класса String переопределен метод inspect.Используется, например, в логах при ловле ошибки чтобы вывести инфу про объект.
>>1459236А ты думаешь здесь все опытные рубисты сидят? В вакансии серьезный стак, я наперед знаю что не пройду плюс как раз офер получил, так что уже не ищу работку
>>1459444>против джавы?Руби - очень динамический язык.Наверное, самый динамический из всех. Потому и тормозит.И в смысле типизации, и в смысле выполнения.Например, определение класса в руби именно _выполняется_.Можно просто включить произвольный сторонний код в это определение (не унаследовать) и он будет выполняться. И может менять код класса налету.Руби - очень гибкий язык. Это и достоинство и недостаток.На нём очень хорошо писать DSL (мини-языки). Например, рельсы - это DSL, чуть более, чем полностью.Джава - это другое.Это компилируемый язык со статической типизацией.И виртуальная машина для выполнения скомпилированного байт-кода.На джаве можно написать руби (jruby.org).И он будет в чём-то даже лучше оригинального.А вот на руби написать джаву - нельзя.
>>1460127Просто берешь puma, задаешь сколько хочешь тредов и воркеров и готово, весь конфиг пумы обычно строк 10-20 занимает.
Стоит ли вкатываться на рельсы в 2019?Вот тут пишут, что да (картинка оттуда же, лол):https://naturaily.com/blog/who-gives-f-about-railsА на практике? В ДС есть что ловить?
>>1460289Вкатывайся. Я вот иногда жалею что не работаю здесь, может быть было бы тоже интересней. 50 на 50. Мне и на свифте приятно писать.
>>1460311>опыт с чем нибудь из топ 5 ЯПДжава, питон, джаваскрипт, руби? А кто пятый? Пыха, что-ли?Да, имею. На всех - более или менее.Но, на рельсах ничего не делал.Какого рода приложения на них делают сейчас в России?
>>1460320>Джава, питон, джаваскрипт, руби? >А кто пятый? Пыха, что-ли?Это местный шизик. Детектится по мелкобуквенности, отсутствию пробелов после знаков препинания (или отсутствию этих знаков в принципе) и не способности высрать больше одного, изредка двух, предложений.>Какого рода приложения на них делают сейчас в России?Зайди на hh или мой круг и посмотри вакансии. В ДС из того, что сходу вспомнил: мейлач, рамблер, рокетбанк, альфапоток, инстамарт, ржд, учи. Еще дофига не особо публично известных мест есть.
>>1460468>mint@mint:~$ gem install railsFetching: concurrent-ruby-1.1.5.gem (100%)ERROR: While executing gem ... (Gem::FilePermissionError) You don't have write permissions for the /var/lib/gems/2.5.0 directory.
>>1460495сначала ставишь менеджер версий - rvm или rbenvна менеджер версий ставишь нужную версию rubyпотом только ставишь гемывсё это будет лежать в каталоге текущего пользователя и не потребует особых правконкретно твой случай - попытка поставить гем в системную директорию, т.к. ruby установлен из репозитария дистриба, для доступа нужны админские права, то есть перед gem install пропиши sudo
>>1460504RROR: Error installing rails: ERROR: Failed to build gem native extension. current directory: /var/lib/gems/2.5.0/gems/nokogiri-1.10.4/ext/nokogiri/usr/bin/ruby2.5 -r ./siteconf20190825-5161-1ve8zg7.rb extconf.rbmkmf.rb can't find header files for ruby at /usr/lib/ruby/include/ruby.hextconf failed, exit code 1Gem files will remain installed in /var/lib/gems/2.5.0/gems/nokogiri-1.10.4 for inspection.Results logged to /var/lib/gems/2.5.0/extensions/x86-linux/2.5.0/nokogiri-1.10.4/gem_make.out
>>1460513для сборки гема не хватает пакета ruby-dev, поставь его>>1460520что там не ставится, подробнее
>>1460527ты просто не врубаешься что значат эти команды и что тебе система на них выдает, попробуй читать, что там написано, попутно забивая в гугл все непонятные слова.
>>1460527Какие нахуй инструкции на сайтах? Какое тебе Руби если ты понятия не имеешь что делают команды и не можешь разобраться в случае проблемы?
перекатываюсь с фронта. Проработал 3 месяца и понял что рельсы это мое. Куда лучше вкладываться, в рельсы или в феникс?
Анон, есть один проект, в нем куча CSS и куча JS. При каждом изменении чего-то в CSS, страница грузится секунд по 20 (говорю же, проект огромный). Все советы по конфигу ассет пайплайн не помогают, так как на проекте и так все те конфиги выставлены так же, как в советах.Вопрос: поможет ли перекат проекта на вебпакер, если буду реилс сервер запускать с параллельно запущенным вебпак дев сервером? С какими подводными сталкивались лично вы сами? Стоит ли вообще? Если не стоит, то какие еще могут быть пути?Может кто-то перекатывал по той же причине
>>1460863В рельсы, конечно, даже в ДС эликсиро-работы почти нету, да и в той, что есть обычно сразу опыта с эликсиром/руби или хотя бы просто на бекенде требуют. А если эликсир все-таки взлетит, то перекатиться будет несложно.
>>1460865Да, скорее всего поможет, там же есть полноценный инкрементальный билд только для @import в sass он не работает азаза как минимум, да ассет пайплайн всегда был тормозным говном. Я перекатывал довольно крупный проект год назад на вебпак (без всяких вебпакеров), никаких проблем не было, но у меня уже было очень много опыта настройки вебпака. Так-то с вебпаком, пока ньюфаг, можно хорошо наебаться, не зря его за сложность хуесосят.Если не хочешь тратить время на вебпак, то можешь для начала попробовать с гема sass перекатиться на sassc, может быть этого будет и достаточно.
>>1460884Спасибо за развернутый ответ. Блин, теперь не знаю даже. Задача интересная и в целом важная, тем более ты пишешь, что поможет. Но теперь стрёмно, раз говоришь, что можно наебаться. У нас просто овер30 самых разных JS модулей, не навернуть бы это всё к хуям
>>1460863Конторы, которые юзают феникс, обычно другие свои проекты разрабатывают на рельсе. С рельсой точно не прогадаешь, с фениксом -- как повезет.
>>1461070>>1460863Феникс эликсировский? Это же разные языки, ребят. Звучало как "Понял, что мне рельсы - это мое. Стоит ли вкатываться в ASP.NET?"
>>1461114Языки разные, но по факту очень похожие и фреймворки тоже похожие. Из Руби перекатываются многие в Эликсир, платина, поэтому вопрос был нормальный на самом деле.
>>1461262Я бы не сказал, что фреймворки очень похожие, все MVC фреймворки в целом похожи, просто тут создается иллюзия большей похожести из-за схожести синтаксисов языков. А уж ecto и activerecord вообще не похожи между собой.
>>1461262Синтаксически похожи. Парадигмы разные. Рельсовик готов писать не говнокод на эликсири тогда, когда в состоянии написать что-то адекватное с dry-rb.
Мне нужно приложения на Rails + React, я могу начвать пилить обычное приложение vanilla js, а потом уже перепилить на React, или от меня уже на самых первых этапах что-то специфическое потребуется?
>>1461442Требуется. На реакте у тебя сразу будет верстка в виде компонентов, сразу привязанная к ивентам и выводу данных. А Rails используется просто как API. Нет смысла начинать по-другому, больше времени потеряешь.
>>1461442>пилить обычное приложение vanilla jsКак ты себе это представляешь?Что ты там будешь пилить? И зачем?Алсо, лучше начни с Vue. От реакта ты быстро устанешь.
>>1461506У реакта просто кривая обучения выше, но как только ты освоишься, сразу поймешь из-за чего хайп весь. Он удобнее, выразительней и с лучшей экосистемой, чем Vue.Хотя безусловно, Vue тоже хороший фреймворк, но я его вижу смысл учить только если Ларавель на бекенде, там они с Vue интегрируются плотно и зачастую идут в паре в вакансиях.
>>1461632>У реакта просто кривая обучения выше, но как только ты освоишься, сразу поймешь из-за чего хайп весь. Он удобнее, выразительней и с лучшей экосистемой, чем Vue.Вкусовщина. Я больше года и с тем и с тем работал и vue мне нравится намного больше. В реакте слишком много бойлерплейта, все эти ехал HoC через HoC; роутер который публичное api меняет постоянно хотя сейчас успокоились; редукс это вообще апофеоз бойлерплета знаю, что уже писал, но это пиздец; хуки, как попытка хоть немного решить проблему бойлерплейта, но которые при этом добавили своих проблем, вроде того, что их нельзя даже банально внутри if использовать, из-за того, что их поведение зависит от порядка вызова; vue-cli на голову выше по удобству create-react-app опять же.Во vue при этом для меня есть только два недостатка. Это то, что typescript интегрировать с ним не очень просто, но в 3 версии это пофиксят, и то, что они никак с defineProperty на Proxy не переедут и приходится иногда использовать Vue.set/delete.
>>1461957Это просто меняет версию рубейЯ понял что только такcd /tmp/rails-appsmkdir my-first-appcd my-first-appecho "source 'https://rubygems.org'" > Gemfileecho "gem 'rails', '5.0.1'" >> Gemfilebundle installbundle exec rails new . --force --skip-bundlebundle update
http://engineering.appfolio.com/appfolio-engineering/2019/5/17/jit-performance-with-a-simpler-benchmark
>>1463705В более-менее солидных компаниях?Есть список сайтов с такими технологиями?Работал только с рельсами и чистым js/jQuery, потому и не знаю
>>1463708Да, там же даже ссылки на статьи есть по поводу увеличения производительности.Кроме того, не обязательно юзать подобную штуку. Реакту все равно на чем написан бекенд, ты просто получаешь JSON'ы. На беке ты можешь юзать что угодно, в том числе Rails в API режиме.
>>1463821Всё является объектомОчень гибкий сам языкСистема итераторовБлоки и конструкцииКонцепция смешанных модулейХороший API для вызова Ruby из CНезависимые от операционной системы потокиЯсность, простота и логичностьСинтаксис красивый
>>1463870Все является high order functionОчень гибкий и scalable languageСистема паттерн матчингаСтруктуры, модули и дифыКонцепция акторовХороший API для вызова эликсира из эрлангаНезависимые от операционной системы акторы, которых можно >1kk плодитьЯсность и функциональностьСинтаксис красивый
>>1463870Добавлю ещеБольшая и разнообразная экосистема гемовУдобное и сильное метапрограммирование (сюда же возможность делать крутые DSL)Хорош как для быстрых скриптов, так и для больших проектовRails (один из лучших веб-фреймворков)мимо-рубист
>>1463882Добавлю тожеБольшая и разнообразная экосистема hex Удобное и сильное метапрограммирование + продакшен функциональщинаХорош для больших проектовФеникс - второй из лучших веб фреймовА теперь, я тебя опровергну:Скрипты никто не пишет, а если и пишут - то только рубистыИ DSL почти никто не делает.
>>1463888Шизик, ты в порядке?Задал вопрос - я на него ответил.Кто тебя просил печатать остальной текст?
>>1463887На деле у Эликсира маленькое комьюнити и он довольно сложен для простых проектов, нет смысла его юзать.
>>1463909Не было смысла юзать до 19 года, он уже как 5 лет развивается.И я не говорю бежим все и подключаем в продакшен. Это только микросервисы.
>>1463920Я считаю его самым лучшим, но у всех свои мнения. По факту язык в 90% случаев не имеет значения. Имеют значени программисты, архитектура и умение делать продукт.
>>1463930последнее это бизнес. Язык - в 100% случаев имеет значение. Ты делаешь проект, а не инструмент.>>1463942auth например.
Почему 100% Как ты собрался нанимать эликсирогосподина, если их в рашке они не популярны, например?Я лучше возьму даунов питонистов, которые склепают все.
>>1463879>Все является high order functionНе является.>Система паттерн матчингаБез компилятора это просто сахар.>Структуры, модули и дифыКолбаса, залупа, сыр.>>1463887>Большая и разнообразная экосистема hex>БольшаяПроиграл.>Удобное и сильное метапрограммированиеМакросы это не совсем метапрограммирование. Настоящего метапрограммирования в рантайме в эликсире нету.
>>1464597Правда. - У Руби специфичная ООП модель (все является объектом, нет примитивов)- При этом есть элементы функционального программирования, которые постоянно используюся (блоки)- Специфичный Ruby-way (в Руби есть цикл for, но мы всегда используем перебор методом each)- Очень высокая гибкость языка, метапрограммирование, duck typingНу и изучая руби ты с 90% вероятностью хочешь в Рельсы, а это отдельный разговор.
>>1464617Под капотом Int (Number) всё же примитив (для производительности), но там нахакано так, что он выглядит как объект.
>>1460304>популярностьНахуй бы она всралась. Чтобы толпы скама прискакали засирать все своими библиотеками из говна собранными. Я когда учил жиес заебался просматривать код библиотек. Какой-то пентюх услышал что Вью КРУТА, а Жиквери немодна и побежал в нем кодить, но из-за тупости или лени вхуячивает в свою библиатеку джиквери блять. А толпа таких же слепых уебанов еще популярность ей накручивают. Потом заебываешься смотреть исходники библиотек, чтобы очередной МОДНА-алень не наподключал туда все что под руку попалось. Боль блять, какая боль от этих пидарасов с их хайпом и непролазной тупостью. Надеюсь рельсы больше не станут популярными, чтобы этого говна еще и в гемах не лицезреть.
>>1465095Двачую адевата. В какой-то мере устоявшаяся и крепкая экосистема это плюс для Руби и Рельс. А не так что ты отправляешь код в продакшн, а там оказывается фишинговые npm пакеты.
RUBY MEETUP №10Очередной бесплатный руби-митап в Москве. Редкая возможность увидеть тех коллег по прошлым проектам, кто ещё не релокейтнулся.https://railsclub.timepad.ru/event/1050182/
>>1453526Я даже рельсы запустил, но с такими плясками что лучше бы я этого не делал.Сразу скажу:1. При попытке открыть страницу (даже "You're on rails!") выдаёт ошибку sqlite3, надо поменять в Gemfile строчкуgem 'sqlite3'наgem 'sqlite3', git: "https://github.com/sparklemotion/sqlite3-ruby"2. "You're on rails!" отображаются, а свои страницы — хуй? Добавить в Gemfile строчкуgem 'coffee-script-source', '1.8.0'Лучше всё-таки не трогать это говно под виндой, имхо
Есть ли тут новички, которые хотели бы заняться каким-нибудь простым, но нужным проектом? Знания подтянуть, да и ради интереса?На гите активность поднять.Rails 6.0Может быть в стеке с ReactJs?Обсудим идею, реализацию и прочее.Нужно же как-то развиваться. В одиночку руки не доходят.
>>1455556Лол как раз таки наоборот. Руби это про скорость разработки (скорость = стоимость). На руби можно быстро сделать апи, накатить react native и пульнуть апку в апстор для проверки гипотезы стартапа и все за время, которое твой коллега на пхп симфони настроил бы окружение и роутинг и подключил базу данных, лол. Утрирую конечно но суть ты уловил. А вот для жирных хайлоадных энтерпрайзов рубец может оказаться мало и тут скорость разработки уже может начинать проседать когда юзер кейсы и бизнес логика будет выходит за пределы твоих 25 любимых джемов
Как сделать правильно joins/includes в моём случае?Есть модель User и модель RoleUsers. Связаны has_many/belongs_to.В RoleUsers есть поле site_id.Мне нужно найти всех юзеров, у которых в таблице roles_users поле site_id равно 20.Что я пробовал:User.joins(:roles_users).where(site_id: 20)Но мне выдает записи из таблицы roles_users, а мне нужно, чтобы выдавало пользователей из таблицы users.
Пытаюсь перенести ассеты на вебпак, и что-то не догоняю что делать с js файлами для въюх из assets/javascript, куда кидать эти скрипты, на что менять javascript_include_tag? Кидать их в один пак? Там инициализации таблиц и чартов, id таблиц пересекаются на разных страницах, они же не будут работать из одного пака.
доброго вечера.я залетный и жс треда.вопрос-разумно ли будет использовать ралис для СПА приложения на 5 страниц?как у вас с работой с БД?авторизацией?
>>1466095#youtube вчерашний Ruby Meetup 10https://www.youtube.com/watch?v=6DKrPdK64H4Конкурсы были интересные, еда вкусная, доклады средненькие на самом деле (потому что весь движ будет на Ruby Russia, само собой)Вообще там на канале ещё есть более-менее интересные видео:https://www.youtube.com/channel/UC3EZrnKAVBw9_N9FjSPni3w/videos
Что не так с этой инструкцией?https://github.com/jbox-web/ajax-datatables-rails/blob/master/doc/webpack.mdпытаюсь подключить DataTables, ошибка - Error: Cannot find module 'datatables.net-bs', в папке node_modules datatables.net-bs присутствует.
>>1469394опытным путем выяснил, что проблема в точке между datatables и net-bs, ни один модуль с точкой в имени папки не загружается, даже не смог ничего нагуглить на эту тему.
>>1468885Ну вот тут он те js перекидывает в другую папку.https://medium.com/michelada-io/from-the-asset-pipeline-to-webpack-ce5a4bc323a9The next step in this migration will be to move all your Javascript files from app/assets/javascripts to app/javascript/application/javascripts.
>>1469029Все хорошо.Бд подключаются, хранят данные и даже разрешают их иногда доставать и обновлять. Авторизация также присутствует, что безусловно плюс.
А в треде есть люди из Украины? Как вообще с работой(в Киеве), вкатываться начал с конца весны, вот думаю не обосрался ли я. Хоть бы удаленку найти...
>>1470097Есть. Есть RubyGarage у нас, но там толковые нужны. Ну и общие вакансии, например, тут: https://jobs.dou.ua/vacancies/?search=RubyНа джуна только 2 вакансии: https://jobs.dou.ua/vacancies/?city=Kyiv&search=Ruby&exp=0-1Да ты не то чтобы обосрался, просто глупо искать работу только в Киеве, ищи удаленку или перекат.
Как правильно обновить рельсы с 5.2 на 6?Меняю гем gem 'rails', '6.0.0'Делаю bundle updateВ config/application.rb прописал config.load_defaults 6.0Поставил там же config.autoloader = :classic, так как на Zeitwerk все ломается с моими константами.Что дальше делать? Сервер запускается, отображаются 6 рельсы. Но разве это все?
>>1453526На последних версиях 10-ки говорят докер более менее работает. Ну или просто VirtualBox c расшаренной папкой.>>14531993-е издание Rails tutorial от Хартла есть в русском варианте на рутрекере. Но на уровне чтения технической литературы английский все-таки выучи.
Обновился с Rails 5.2.3 до 6.0.0, сломался ActionMailer. В чем может быть проблема?Использую MailGun, очереди в sidekiq. Очередь появляется, но дальше никуда не идет.
>>1470455бля, час назад выкатил в прод рейлс 6, и оказывается тоже не работает почта, буду разбираться завтра.
>>1470455Потому что в 6 рельсах новый переписанный ActionMailbox. Очевидно что не нужно 1 кнопкой апгрейдиться если у тебя изменения в мейлере.
>>1470474>>1470501>>1470564Несколько часов пердолинга, обновление sidekiq и добавление assert_emails 1 в тесты решили проблему.
>>1471151Не пробовал использовать с девайсом, но с sorcery все работает а девайс все равно параша и не нужен.
Как в 6 рельсах распараллелить набор тестов?В test_helper прописать?class ActiveSupport::TestCase parallelize(workers: 2)endБольше ничего не требуется?
>>1472154с винды вообще ничего не получается сделать, вебпак ругается на какие-то симлинки из node_modules в проброшенной папке.
>>1472400Вакансии постоянно выскакивают. У нас в Таллине, например рубистов не хватает.Для нашего клиента - онлайн платформы, ориентированной на ставки на спорт, ищем Ruby+Vue разработчика, который присоединится к команде в Таллине. Вам будет предоставлена большая свобода в выборе инструментов и подходов для создания инновационных продуктов. Кроме того, вы будете работать в паре с опытными наставниками. Текущий стек: Ruby on Rails, Vue, React.Требования: опыт работы с Ruby (3+ года), Vue или React, fluent in English, хорошие коммуникативные навыки.Помимо шанса стать частью амбициозной команды, компания предоставляет возможность профессионально расти, помогает с релокацией, а также сейчас разрабатывает пакет дополнительных бонусов для сотрудников компании, который станет доступен в скором времени.Зарплата: 3 250 - 4 500 EUR gross.Работа в офисе, Эстония, г. Таллин.Релокационный пакет.За подробностями сюда:@NinaShcherbakova
>>1472400Нихуя, у меня, например, готовятся к запуску 2 проекта на рельсах: один - интернет-магазин для крупной региональной компании, в которой я ранее работал манагером, второй - стартап для партнера со своим юрлицом в штатах и счетом на кипре. На рельсах что-то вроде цмс + апи для аппа на яблофоны.Оба планируются к запуску в октябре.Нет работы? Создай ее себе сам.
>>1472419> На рельсах что-то вроде цмс + апи для аппа на яблофоны.что то уровнем пхп лендинга?дааа,серьезный проэкт
По какой причине может не работать автостарт юнитов systemd после ребута?я делаю экспорт foreman export systemd /etc/systemd/system--port=3000--user=rails--app=my-appsystemctl enable my-app-web-1.servicesystemctl start my-app-web-1.serviceвсё работает, но после перезагрузки системы сервис выключен.вроде же после systemctl enable он должен сам стартовать?
>>1473455Посмотри логи через journalctl - journalctl -b -u my-app-web-1.service.service. Сходу предположу, что в зависимостях не прописан, например, постгрес, приложение пытается стартануть раньше постгреса и падает.
>>1474479Одно совсем простоеОдно на то, чтобы удалить все лишние интервалы (которые покрыты другими интервалами).Важно знать, что там не самые последние руби и поэтому что-то уровня (0..2).cover?(1..2) не сработает https://blog.bigbinary.com/2018/10/24/ruby-2-6-range-cover-now-accepts-range-object.html
Тред не читал, нихуя не читал, только немного погуглил.Есть одна браузерная игра, которую я хочу автоматизировать простенький бот для автоматизации некоторых рутинных процессов, суть проблемы в авторизации - как лучше ее реализовать, какие гемы юзать, в какую сторону копать? Заранее благодарю
Подскажите плиз, как сделать миграцию с типом enum? Нужны 3 варианта енама. Только учу руби, не обзывайтесьclass CreatePomoika < ActiveRecord::Migration[6.0] def change create_table :pomoika do |t| t.timestamps, null: false t.string :name, null: false t.enum?..... end endend
>>1477421https://stackoverflow.com/questions/4282710/how-do-i-describe-an-enumeration-column-in-a-rails-3-migration
>>1473484>Посмотри логи через journalctl -- No entries --судя по всему после ребута systemd даже не пытается запустить сервис.
>>1478437разобрался, foreman по какой-то причине генерирует app.target файл с пустой секцией [Unit] и без [Install], соответственно, никаких действий не предпринимает. Непонятно пока почему он это делает, остальные юниты в порядке.
Поясните, почему в ruby-вакансиях часто дополнительно идет Elixir? Разные и не связанные друг с другом вещи вроде бы.
>>1479221Чего разные? И то и то бек. Засрали ергалнг ебищным руби синтаксисом запилили еликсир рубисты и некоторые туда перекатываются понемногу.
>>1479221Ну лично я уже полгода перевожу свой единственный живой руби(рельсо)-проект на эликсир, подозреваю что все остальные тоже так делают.
Ваше время пришло, рубисты!https://moikrug.ru/vacancies/1000053611Тебя это тоже касается, эликсирошизик!https://moikrug.ru/vacancies/1000053620
Active Storage - какие подводные?Из того что отметил для себя - нет валидаций из коробки. Приходится вхреначивать js скрипт и вешать на file_field.
Срочно! На проде перестала обновляться schema.rb при миграции.Новая таблица в базе появилась, но схема осталась прежней. В чем проблема?Прод на Heroku.
Привет, миряне! Столкнулся с явными проблемами понимания ООП в руби, может кто подсказать хороший материал для разъяснения по типу закаса для JS. Спасибо!
>>1482175Eloquent Ruby, напримерhttp://gen.lib.rus.ec/search.php?req=eloquent+ruby&lg_topic=libgen&open=0&view=simple&res=25&phrase=1&column=defepub там битый какой-то
>>1479755Тестовое неплохое, но на такие требования минимум от 150к зп должна быть, иначе смысла нет.>>1482071Логи смотри.
>>1483503Резюме у меня нет, как его вообще писать? Может советы какие-то дадите? О чем в нем писать, о чем не писать? Ни разу не был на классическом собеседовании, устраивался по приглашению, софтскилл нулевой, соответственно.
>>1484055>28/09/19 Суб 21:31:43>рубисты на месте?Все рубисты в это время были на АФТЕПАТИ RUBY RUSSIA в Москве в Paulaner Brauhaus: пили пиво и фотографировались с Юкихиро Мацумото создатель языка программирования Rubyhttps://twitter.com/search?f=tweets&vertical=default&q=%23rubyrussia&src=unknПотому что вчера была главная руби конференция в России: Ruby Russiahttps://rubyrussia.club/
>>1484738Хуита какая-то, прямо сейчас обычным помидором в ДС получаю больше, чем самая правая точка на графике - 300к нет не в секунду. Насколько мне известно другие помидоры в конторе тоже все от 250к получают.
Возможно ли записать такой запрос к бд:users = User.where.not("? < current_sign_in_at AND location = NULL", Date.today - 30.days)в виде символов?Например:users = User.where.not(..., location: nil)
>>1485911В целом в ДС вполне реально, за остальную часть страны не скажу. Но заметно тяжелее, чем сеньором или хотя бы мидлом, в мою контору, например, мы джунов не набираем.
>>1486545Подходят, но только если Реакт на фронте, бэк Рейлс.>>1451671 (OP)Ну что котаны, ждете 25 декабря?
>>1486569Что за старая модель статики такая? Тебе для СПА что нужно, REST? На рельсе это без проблем вообще.На счет SSR для реакта я хз что там
>>1486665Очень смешно, когда у жиес только недавно типизация появилась в форме тс, как был говном, так и остался
>>1488380Полтора года. Потому что интереснее стек, язык развивается, работы больше.>>1488452Ну бабло относительное дело, рубисты так же как и JSеры зашибают.
Обмазались своими DSL ебучими, в итоге в 2019 году мы имеем язык без нормального автоформатирования. Да, я про руби.
Что мы имеем в итоге к 2020 году? Какие преимущества и перспективы есть у руби по сравнению с другими языками?Только пожалуйста, не надо рассказывать про мифическую зрелость экосистемы и относительно большое комьюнити. Все топовые гемы мейнтенят два с половиной человека.
>>1489050Код писать приятно. Руби достаточно быстр и будет ещё быстрее. Рельсы действительно зрелый фреймворк, и его поддержка хороша.Всё стабильно.В коммьюнити нет петухов и дебичей.Работы, конечно, не как говна для фронтопидорков, но вполне достаточно. При желании можно найти свежих стартапов и вкатиться прям на старте.
>>1489050Хуй знает, котик. Я вот хорошо знаю все возможности руби. Когда пишу код, он пишется просто чудесно, радует глаз. Лаконичность и элегантность. Пишу и на рельсах, но последнее время по большей части API на Grape. Мы не пишем безумные простыни кода в моделях и контроллерах, в любом проекте заводится слой сервисов\операций\компонентов в духе domain driven design. Мы пишем свои DSL, если это уместно. Код покрывается тестами на rspec. Это хорошие кодбазы, работать с которыми можно с комфортом даже в проектах возрастом в несколько лет. Мне повезло, у меня отличные напарники, которые в целом очень компетентны в IT, и им так же нравится писать руби-код, как и мне.Когда я пишу на джаваскрипте реактопарашу, чувствую себя, будто мне отрезали одну руку и одновременно с этим заставили сожрать земли.На питоне код пишется чуть получше, чем на жс, но часто далеко не так элегантно, как на руби. Динамичности тоже не хватает.Ещё в прошлом я довольно много кода пописал на пхп, нынче от взгляда на пхп начинают кровоточить глаза.Уверен, что в ближайшие 5-10-20 лет руби никуда не денется. Да, это не мейнстрим. Но на мой век работы хватит.
>>1489082>Руби достаточно быстр и будет ещё быстрее.скорость которого нивелируется монстром под именем RoR
>>1489144>скорость которого нивелируется монстром под именем RoR это специфика ORM - ActiveRecord, сам паттерн такой, подразумевает удобство в ущерб производительности, но даже на нем можно сделать всё быстро, если разобраться с конструктором запросов.
Добрый день. Подскажите по рельсам, если я добавлю file.txt в папку public и залью на продакшн, он будет доступен по ссылке example.com/file.txt?
>>1490831зависит от настроек вебсервера, в nginx за это отвечает блок location, но скорее всего файл будет доступен.
про rubyschool кто что может сказать? Как курсы для полного ньюфага, который до этого программирование видел только в кино и играх. Может тут кто-то смотрел их?
>>1491243Открыл первое занятие, увидел шиндовс, закрыл первое занятие.Лушче пройди курс на codecademy, затем учи новые методы решая задачки на codewars. Дальше осиливаешь QA для руби-джунов. Для начала прочти эти основы https://github.com/undr/ruby-triviaИ первый багаж знаний рубиста у тебя будет.
>>1491529Он там параллельно и на шинде учит и на маке. Просто, как я понял, сначала эти записи были платные, и группа учеников в большинстве своём была на шинде.
>>1491644Все равно лучше не стоит тратить время на видеокурсы. С видосами ты поймешь все быстрее, но не сможешь применить эти знания для другой задачи. Ты будешь знать только как решить именно ту задачу, которая была в видеокурсе.Другое дело понять основу и идти на какой-нибудь codewars. Сначала будет трудно что-либо решить, так ты станешь искать методы/алгоритмы в документациях рубей и знания будут глубже.>>1491684Руби, а особенно рельсы или другие фреймворки, пошлют тебя в пизду при написании более-менее нормального проекта на шинде. Да, можно все чинить, заняться пердолингом, но зачем? Самый нормальный вариант с виндой - это установить wsl.
>>1491736Послушай знающего и решай задачи на руби, так у тебя появится мышление именно программное, осиль убунту, шинда это ни разу не про разработку на руби
>>1491684>>1491736> Все равно лучше не стоит тратить время на видеокурсы.> С видосами ты поймешь все быстрее, но не сможешь применить эти знания для другой задачи. Ты будешь знать только как решить именно ту задачу, которая была в видеокурсе.> Другое дело понять основу и идти на какой-нибудь codewars. Сначала будет трудно что-либо решить, так ты станешь искать методы/алгоритмы в документациях рубей и знания будут глубже.> Руби, а особенно рельсы или другие фреймворки, пошлют тебя в пизду при написании более-менее нормального проекта на шинде.> Да, можно все чинить, заняться пердолингом, но зачем?> Самый нормальный вариант с виндой - это установить wsl.
>>1491243На русском мне понравился курс от thinknetica, правда достать его сложно, тут скидывали как-то.
>>1491809https://dev.to/adamlombard/ruby-class-methods-vs-instance-methods-4aje ленивопервоссылкаизгугла
>>1491848Это херня,а не ответ.это я уже видел и ещё пару десятков страниц.но так и не понял суть-зачем оно?
>>1491894Сперва стоит выяснить, понятно ли тебе отличие класса от объекта. Если понял в чем их отличие, то метод класса вызывается на всём классе, а метод объекта только на отдельно взятом объекте класса
>>1492429Инстанс имеет ссылку в памяти а объект может и не иметь, так что экземпляр это скорее ссылка в памяти!
>>1493655https://alfredjava.wordpress.com/2008/07/08/class-vs-object-vs-instance/Я думаю тот хорошо объяснена разница. Простите за дотошность.
>>1471151Перепиши его стандартным has secure password будет меньше говнокода!Девайс по сути это просто куча вьюшек автосгенерированных.
я не понял,anycable реально неплохое решение для реал-тайм апп,наравне с нодой и эрлангом?https://evilmartians.com/chronicles/anycable-actioncable-on-steroids
>>1494936Гляну на днях и черкану что думаю по возможности! Звучит интересно, спасибо за статейку. Однако в целом ActionCable это просто обертка на руби для вебсокетов, так что не очень понятно как они смогли седлать обертку другого вида фундатментально быстрее без изменения языка самой обертки!
>>1496890Они перенесли работу с сокетами в отдельный сервис (+ другой сервис), написанный на Go, таким образом, что рельсовое приложение продолжает быть stateless.
>>1496901Ну может тогда оно и работает, все равно нужно понять как оно себя будет вести при большой нагрузке
Вот говорят что руби умирает но самом деле в последний год стал видеть на нем новые проекты, ищут людей на работку найти не могут ЗП тоже в целом подросли.Теперь внимание вопрос, переломился ли тред с потерей популярности и просто слились хайпующие? Или просто те кто писали на рельсах уходят от них?
>>1496961> Теперь внимание вопрос, переломился ли тред с потерей популярностиРельсы продолжает терять популярность в первую очередь из-за JS экосистемы.> Или просто те кто писали на рельсах уходят от них?Тот изначальный костяк сейчас пишет на Go/Rust или даже Scala.Вообще к чему этот вопрос? Думаешь учить или не учить или что?
>>1496968ЗЫ про скалу тоже говорят что она приказала долго жить, хайп про го не понимаю - очень простой язык.
>>1496974> Думаю стоит ли укатываться с рельс куда-то или нет. Учить или не учить уже не выбор)Делай то что тебе нравится. ЗП примерно одна и та же везде.> ЗЫ про скалу тоже говорят что она приказала долго жить, хайп про го не понимаю - очень простой язык.Могу сказать, что в долине она живее всех живых (пока).
>>1496989> Может спишемся, я тут не знаю рубистов, особенно русских.Пиши на 2ch.mailbox.42@gmail.com> Далеко от сансета живешь?На твин пиксе я
>>1496961Удвою на счет зарплаты и работы. Сбер что-то там запускает и их херки прямо завалили меня приглашениями, да и в целом предложений больше, чем в прошлом году. Зарплатки то же прямо заметно выросли, ~300к в ДС стало сеньору найти достаточно просто.
>>1451671 (OP)Ктонибудь умеет в ассоциацию пихать параметр?Судя по интернетам ассоциации должны быть инстансонезависимы и единственная возможность - extends module, но что-то сделать это вместе с другими штуками и скопами у меня не получилось
>>1497462Приведи пример, что ты хочешь. Скорее всего ты можешь обойтись методом класса, который реляцию будет возвращать.
>>1497462Конкретный примерЕсть Comment, has_many :child_comment class Coment, каждый коммент может иметь лайк от юзера в CommentInteraction.ДЛя Comment есть scope :with_user_like, ->(user_id) { joins('INNER JOIN comments_interaction AS ci ON ci.comment_id = comments.id AND ci.user_id = #{user_id}' #Ну на самом деле placeholder но вы поняли) }ТАк вот я хочу подгрузить комментарии к комментарию с помощь ::Comment.includes(:child_comments) так, чтобы в child_comments был посчитан лайк юзера
>>1497480Насколько глубоко ты хочешь считать лайки? Что если есть коммент к комменту к комменту к комменту и зайлайкан самый нижний комментарий. Это должно считаться?
>>1497484Да, ко всем вложенным. Структура базы такова, что каждый вложенный коммент имеет ссылку на корень дерева - parent_id и именно по нему дергаются child_comments (foreign_key: parent_id). Опустим ситуацию с комментами других уровней, т.е. хотим взять коллекцию комментов верхнего уровня, к ним предзагрузить вложенные комментарии (includes) так, чтобы лайки были посчитаны. Там еще считаются количество лайков, это тоже делается с помощью скоупа и делается нормально, ТК никакой переменной не нужно пробрасывать. А вот как посчитать относительно юзера непонятно
>>1497489Я бы посоветовал поменять структуру базы данных на nested set и использовать, например, https://github.com/collectiveidea/awesome_nested_setТогда твоя задача становится тривиальной. (если я всё правильно понимаю)
>>1497498Да ты прав, но это не вариант, к сожалению. Не дадут сейчас делать такой рефакторинг. Из-за блядской структуры даже пагинации полноценной нет. Лайки в итоге пришлось взять отдельно все юзерские и проверить по собранной коллекции includes? и ручками ставить статус.
>>1497498И вообще говоря > ::Comment.with_user_like.includes(:child_comments).where(#некий критерий)должно работать и так. У тебя "некий критерий" не получается сделать?
>>1497505С критерием все ок, проблема вот в чем: скоуп, я не дописал, принимае параметр (user_id). И этот скоуп применяется только к самим элементам коллекции, но не к их ассоциациями (child_comments). Чтобы применялся скоуп к ассоциации надо в has_many указать -> { skope_name }, в частности -> { with_user_like }. Однако сделать has_many ->(user_id) { with_user_like(user_id) } не выходит
>>1497505Тяжело с разметкой. Будь ты проклят, Абу.Вторым аргументом к has_many не прокатывает скоуп передать?has_many :child_comments, -> (parent_comment) { where(хуйнаны, parent_comment.id) }
>>1497532Прокатывает, но только инстанс независимый скоуп, те без параметра, lambda {}, а не lambda { |user_id| }
>>1497559Да. # Получение всех вложенных комментариев комментария с посчитанными количеством лайков и пролайкал ли юхер. SELECT c., COUNT() AS likes_count, (CASE WHEN ci2.id NOT NULL THEN TRUE ELSE FALSE) as user_like FROM comments AS c LEFT JOIN comments_interaction AS ci ON ci.comment_id = c.id LEFT JOIN comments_interaction AS ci2 ON ci2.comment_id = c.id AND ci.user_id = :user_id GROUP BY c.id WHERE c.parent_id = :parent_id. :parent_id, :user_id - параметры. parent_id может быть несколько, тогда будет IN (), вместо = но суть надеюсь понятна. PS возможно ещё GROUP BY ci2.id, с телефона пишу уже в кровати, не могу посмотреть
>>1497572Ты 2 раза сджойнил одну и ту же таблицу по одинаковым условиям. Это ошибка?Правильно ли я понимаю, что ты хочешь получить список всех дочерних комменариев по заданному списку родительских комментариев и к нему:- общее кол-во лайков от заданного пользователя;- флаг — залайкал ли пользователь данный комментарий;
>>1497615> Ты 2 раза сджойнил одну и ту же таблицу по одинаковым условиям. Это ошибка?По разным условиям. Первое - посчитать все лайки всех пользователей (likes_count), второе - поставил ли лайк конкретный пользователь). > Правильно ли я понимаюДа, за исключением того, что подсчёт общего количества лайков ВСЕХ пользователей. > COUNT() AS likes_count... LEFT JOIN comments_interaction AS ci ON ci.comment_id = c.id... GROUP BY c.idПосчитай сумму лайков всех пользователей> (CASE WHEN ci2.id NOT NULL THEN TRUE ELSE FALSE) as user_like... LEFT JOIN comments_interaction AS ci2 ON ci2.comment_id = c.id AND ci.user_id = :user_idФлаг поставил ли лайк конкретный юзер
>>1497727Мне кажется ты можешь обойтись без child_comments> Comment.where(parent_id: 42).joins(:comments_interaction).where("comments_interactions.user_id = ?", user_id)
>>1497749Мне помимо child_comments нужны еще и их родители, те, чей parent_id они принимают в > Comment.where(parent_id: 42)Понимаешь?
>>1497749Давай поясню. На самом деле я беру комментарии от ПОСТА и вместе с ними все ВЛОЖЕННЫЕ комментарии и запрос выглядит так> @result ||= ::Api::Comment .with_likes_count .with_person .with_post_mobile .where(post_id: @id, reply_to: nil) .ordered .includes(:child_comments) .page(@page) .per(@per)Код ассоциации :child_comments> has_many :child_comments, -> { with_person.with_likes_count.where.not(reply_to: nil) }, class_name: '::Api::Comment', foreign_key: 'parent_id', inverse_of: :parent_comment
>>1498073Чтобы лучше понять задачу, давай я тебе скажу что ждет клиенский код этого сервиса.Клиенсткий код ждем ассоциацию @comments чтобы сделать что-то типо того:@comments.each do |comment|render partial commentcomment.child_comments.each do |child_comment|render partial child_comment# У детей уже нет детейendend
>>1498123Да, именно так, только я сделал подсчёт через join, но это абсолютно не важно, ты правильно сделал. И вот теперь надо также посчитать поставил ли лайк конкретный пользователь на комментарий и на child_comments
>>1498127Что за привычка при демонстрации примера писать ты хуй? уже не в первый раз замечаю такую хуйню, одни хуи, пидоры блядь ебаные
Есть рельсовое приложение, которое стоит на VPS с nginx и passenger.Нужно подкрутить Mailer. Но до этого пользовался хостингом Heroku, там просто аддон SendGrid ставил.А как настраивать Mailer на VPS?smtp устанавливать на свой сервер? Какие доп конфигурации нужно будет провести?
>>1502159>smtp устанавливать на свой сервер? Какие доп конфигурации нужно будет провести?Да, либо воспользоваться сторонним сервисом (Gmail или что угодно) и вбить в настройки Mailer соответствующие адреса/логины/пароли.Я просто прикрутил яндексовскую почту для домена.http://rusrails.ru/action-mailer-basics - все достаточно нормально разжевано.
Переношу наш проект на вебпакер, начал конкретно с CSS. Все компилится отлично ровно до момента, когда вызывается миксин, в котором есть такое:background-image: image-set(url('~images/image_1х.png') 1x, url('~images/image_2х.png') 2х);тильда специально для того, чтоб искал еще в app/assetsИ пиздец, без этой строки всё билдится но в паре мест, где используется тот самый миксин, картинки по пизде пошли, с этой строкой говорит, мол, Maximum call stack size exceeded и предлагает добавить еще каких-то лоадеров, помимо тех, что идут из под коробки с вебпакером. У меня и так, помимо дефолтных лоадеров, добавлен resolve-url-loader, но этот миксин ебучий просто всё пересрал.Может кто сталкивался? А то так и пиздануться можно. Гугл по делу мало что говорит, там не такие же кейсы
>>1502479Ты резолвинг ~images правильно настроил в вебпаке-то?Вообще в лучших домах сейчас юзают postcss, чтобы как обезьяна не писать эти ымаджсеты для ретины.
>>1502541Да, в webpack.yml просто указал resolved_paths: ['app/assets'] и получилось доставать.>в лучших домах сейчас юзают postcssТо есть правильного конфига постцсс достаточно, чтоб вообще выкинуть тот миксин с image-set?
>>1502554Попробуй без тильды тогда.> То есть правильного конфига постцсс достаточно, чтоб вообще выкинуть тот миксин с image-set?Если сможешь правильно настроить, то сможешь автоматизировать в том числе и image-set.Как пример:https://github.com/simonsmith/postcss-at2x
Аноны, у меня к вам важный вопрос.3 года уже не пишу на рельсах (так сложилась карьера), но до этого 3 года писал.Сейчас появился вариант вернуться, но мне стало немного страшно, Смотрю, уже rails 6 есть... Глаза разбегаются. Можете назвать какие ключевые изменения со времен rails 4 мне нужно изучить и узнать? То есть за эти 3 года
>>1503768Ничего там особенного не поменялось, не ссы.Появился WebPacker, удалены старые депрекейтнутные ещё при Сралине методы, всё стало быстрее работать, повился ActiveCable, ActiveStorage и новые соглашения.
>>1504099>ActionCable говно>ActiveStorage говноА в чем проблемы-то?и то и другое юзал и всё это не подводило пока что, стоит говоиться к чему-то?
>>1504189ну, может я чего-то упускаюне хотелось бы в один прекрасный день обнаружить отъебнувший активстораж.