М.Двач / Программирование

Этого треда уже нет.
Это копия, сохраненная 4 сентября 2016 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.

47 Кб, 446x512

133 Кб, 1920x1080

97 Кб, 791x1024

Ruby Thread автоперекат !!fuyn/Mm0/k 12 Июл, 16:07 #794342 В конец треда | Веб

Предыдущий: http://arhivach.org/thread/179456/

Принимаются изменения в шапку треда в виде пулл-реквестов:
https://github.com/meoweg/2ch-pr-ruby

Как показывать код:
Быстро - https://pastebin.com
С исполнением - https://ideone.com
Требуется аккаунт GitHub - https://gist.github.com

FAQ:

1. C чего мне начать, чтобы стать рубистом?
Отличным началом будет Programming Ruby (The Pragmatic Programmers Guide), читать Eloquent Ruby и The Well Grounded Rubyist после прочтения первой толку особо не даст, одни и теже вещи, дальше читаем Ruby Way, затем познаем метапрограммирование с Metaprogramming Ruby. А дальше открываем Ruby cookbook 2015 года, Пишем свой код во время чтения.

Следующий уровень, продвинутые книги по руби:
Confident Ruby by Avdi Grimm
Practical Object-Oriented Design in Ruby
Refactoring Ruby Edition
Ruby Under a Microscope для любителей залезть под капот.
Документация по стандартным библиотекам http://ruby-doc.org/
Можно пройти руби онлайн - http://tryruby.org/levels/1/challenges/0
И ещё раз онлайн: http://www.codewars.com/?language=ruby
Не веришь в свои силы? Прочитал уже книжек много и силы свои хочешь познать, сделай - http://rubykoans.com
И вот еще https://rubymonk.com/ - Матц одобряет.

2. Какой gem посмотреть, чтобы понять, как писать код?
Лучше всего посмотреть небольшие gem'ы вроде cancancan, pundit, camping.
А еще можешь полистать на гитхабе гемы с нарастающей популярностю.
https://github.com/trending?l=ruby
Там еще нет тысяч строк, и тебе будет легче понять.

3. Есть ли GUI для руби?
Да. Есть обвязки к Qt, GTK, wxWidgets, Shoes, fxruby (одобренный).

4. Можно ли писать на руби мобильное ПО?
Да. Для iOS есть RubyMotion терпимого качества, для Android - лагающий и падающий, но всеми силами развивающийся ruboto. Для WinPhone до сих пор ничего не завезли.

5. Как установить разные версии рубей?
Легко и просто: https://github.com/sstephenson/rbenv
И это тоже, легко и просто: https://rvm.io

6. Что почитать по рельсам?
http://guides.rubyonrails.org
http://ruby.railstutorial.org
API: http://api.rubyonrails.org
Прекрасные туториалы в стиле for dummies - http://www.theodinproject.com/ruby-on-rails , а вот тут все тоже, но на русском http://codenamecrud.ru/
Классический вводный туториал, где делается с нуля клон твиттера, для новичков в rails самое то - https://www.railstutorial.org/book
Для дотошных читателей есть The Rails 4 Way.

7. Хорошие практики по руби и рельсам?
Читаем Rails AntiPatterns, смотрим Rails Best Practices, также неплохо посмотреть Rails Recipes.
Почитайте еще Grimm A. - Objects on Rails
Еще продвинутое чтиво - http://tutorials.jumpstartlab.com/

8. Ruby/Rails блоги, рассылки и твитторы
IRC каналы на FreeNode: #ruby, #ruby-core, #RubyOnRails, #rails (не очень активен).
Твитторы @rails, @dhh, @yukihiro_matz, @wycats, @tenderlove
Рассылки ruby-core, rails-core, rails-talk
Подкасты:
- http://rubyrogues.com
- http://ruby5.envylabs.com
Скринкасты:
- http://railscasts.com
- https://peepcode.com
- https://www.destroyallsoftware.com
- http://railsforzombies.com
Блоги:
- rubyflow.com - каждый день новости, новые библиотеки, обновления, все дела.
- rubysource.com - читаем интервью, хорошие практики, и безумные сравнения упоротого дибила-индуса на самом деле их пропускаем
- rubyinside.com - новости, туториалы.
- rubyweekly.com
- http://37signals.com/svn
- http://yehudakatz.com
- http://afreshcup.com

9. Я не могу в английский, что делать, анон?
Идти учить английский, без него тут делать нечего.

10. Есть ли у руби русское коммьюнити?
Нет. Вернее есть, но оно протухло и там полно людей у которых чсв высоко.
Яркий пример - rubVDLyANUSjgU#abberPUNCTUMr,Ffu
А еще есть русская слак конфа - https://russiandevs.slack.com она общая, но есть очень активный руби канал.
Так же русская гугл группа, активная - https://groups.google.com/forum/#!forum/ror2ru
Еще вот - https://onrails.club/

11. Какие гемы стоит знать?
capybara, rack, rspec, devise, cancancan, simple_form, solr, sinatra, тысячи их.
Поиск гемов https://www.ruby-toolbox.com

12. Зачем нужны тесты и как их писать?
http://rusrails.ru/a-guide-to-testing-rails-applications
http://habrahabr.ru/post/163597/
Вместо этого можно прочитать классную книгу Everyday Rails Testing

13. Где можно задать глупые и не очень вопросы?
- здесь
- stackoverflow.com
- тематические slack-конфы
- а вообще, гугли, с вероятностью в 90% ответ на твой вопрос уже висит на stackoverflow.

14. Как фокнуть\сделать фичу\исправить баг, сложно ли это?
Нет, не сложно. На rubyflow появляется много новостей с реализацией новой библиотеки, вы можете сделать тесты, фичу для него, старые либы также обрастают багами, улучшайте их! пишите код.

15. В чём писать код?
Atom, Brackets, Sublime Text, TextMate, Vim, GNU Emacs. Для особо упоротых энтерпрайз-макак есть rubymine, плагины к эклипс и нетбинс.

16. Можно ли писать на руби с под windows?
Можно, но придется обрасти костылями в виде виртуальной машины, придется сходу разбираться с Vagrant и многим другим. Чем дальше ты продвигаешься, тем ближе становится ясно, что пора перекатываться на linux/mac

17. Руби язык одного фреймворка?
Есть еще Sinatra, Hanami (ранее Lotus), Volt, Grape, отличные штуки для DevOps - Chef, Puppet и годные генераторы для бложиков - Jekyll, Middleman, всё это активно используется в продакшене

18. Можно ли делать игры на Ruby?
Можно, но не нужно. Гем Gosu.

19. Ютуб каналы
Youtube driven development...
Вот тебе пара каналов, но никому не говори что учишься по видео.
https://www.youtube.com/channel/UCIQmhQxCvLHRr3Beku77tww/videos
https://www.youtube.com/channel/UCfWZwsP8trUy5uHJg8gcGIQ
https://www.youtube.com/channel/UCSI77lJlzlCFPLdV1RSAoYQ
https://www.youtube.com/channel/UCPIyDzf1vwWc8EQJGUX-vYw - тут на ру$$ком даже.

20. Как и где искать работу?
Легко и просто - http://rubyjobs.ru/
Не так просто - https://upwork.com/
Еще вконтакте есть группы по руби/рельсам, там иногда постят вакансии. Еще в русской гугл группе постят вакансии. Новичку будет сложно, но возможно.

TODO лист для ньюфагов:
И так, ты поставил руби, уже сгенерировал свой первый проект rails new pidaras
Начни уже с платинового пути, блог >> клон твиттера >> своя имейджборда >> свой гем >> дальше сам придумаешь.
Рекомендации:
1. Для блога, создать роли, Админ, Пользователь (можно использовать паттерн form object). Прикрутить лайки, комментарии.
2. По твиттеру, следуя гайду Хартла, пиши все то что он предлагает в качестве доп. заданий, например оповещение по нику (@eblan: привет)
3. По имиджборде: воссоздать по возможности полный функционал, в этом случае придется ознакомится с javascript/jquery/coffeescript, но тебе так или иначе придется. Еще хорошей фичей будет использование background job и крон тасков (sidekiq, whenever), чтобы заполнять свою борду тредами и постами с другой борды, можно использовать api двача, чтобы вытягивать треды и посты - https://github.com/ID25/api_2ch
4. Не стесняемся постить свои репозитории, наши эксперты с радостью отревьювят вас.

После этого тебе будут нужны паттерны, без них твой код превратится в говно. Один из часто используемых - Service Object.
https://netguru.co/blog/service-objects-in-rails-will-help - о сервисах
Еще паттернов - https://robots.thoughtbot.com/back-to-basics-solid

Но самый читаемый код, как и следовало ожидать, даёт функциональное программирование. Начни отсюда:
http://www.sitepoint.com/functional-programming-techniques-with-ruby-part-i/
http://www.sitepoint.com/functional-programming-techniques-with-ruby-part-ii/
http://www.sitepoint.com/functional-programming-techniques-with-ruby-part-iii/
http://www.sitepoint.com/functional-programming-pure-functions/
http://www.sitepoint.com/functional-programming-ruby-value-objects/
Только не переборщи. Руби - не функциональный язык, и иногда такой код может работать медленней.

Прочитал? Теперь рефактори то, что уже написал. И не забывай покрывать тестами.

Хорошим финалом будет деплой, это пожалуй самое болезненное, и ничего общего с деплоем на heroku, где тыц тыц и готово. Придется поковыряться со смежными вещами и узнать много нового, уже устоявшийся гем для таких дел - Capistrano.

Не забывайте спрашивать у анонасов вопросы, код лучше показывать через gist или pastebin с подсветочкой.
Ну, а мы открываем очередной Ruby Thread.

Ответы>>800705>>801368>>808198

12 Июл, 20:03 #2 #794577

Есть тут аноны, которые хотят учить руби вместе? Самому как-то скучновато. ну или можем просто няшиться под пледиком, ок

Ответы>>794656>>794666

sage 12 Июл, 20:35 #3 #794656

>>794577
>учить руби вместе?
Ну разве что так.
https://www.youtube.com/watch?v=dYBjVTMUQY0

Ответы>>794658

12 Июл, 20:38 #4 #794658

>>794656
я не пидор в принципе

!!fuyn/Mm0/k # OP 12 Июл, 20:45 #5 #794666

>>794577
Если поможешь с моим сервисом автоперекатов, который перекатывает этот тред, то оставь контакты (желательно Tox). Его бы допилить, чтобы можно было добавлять треды из /pr, подписываться на них и т.д. Идей много, но одному скучно делать.

Научить могу многому, работаю на Upwork уже больше года.

Ответы>>794669>>794943>>794953>>812620

12 Июл, 20:47 #6 #794668

Привет жертвам хайпа!

Ответы>>797765

201 Кб, 989x1400

12 Июл, 20:50 #7 #794669

>>794666
Боюсь, я еще совсем нуб, чтобы пилить сервис автоперекатов пару дней назад только начал руби смотреть. И дальше хеллоуворд хуйни не ходил пока.

Ответы>>794677

# OP 12 Июл, 20:57 #8 #794677

>>794669
Ну я тебя уговаривать не буду. Хочешь чему-то научиться - давай контакты. Нет - зачем предлагал тогда?

Ответы>>794684

12 Июл, 21:01 #9 #794684

>>794677
Я просто сказал, что еще совсем ньюфаг лол.
Стучаться можешь в мой скайп piece-duke11

12 Июл, 21:56 #10 #794737

Сложно ли вкатится в руби на джуна?

Ответы>>794754

# OP 12 Июл, 22:30 #11 #794754

>>794737
Сложнее, чем на PHP, наверное. Откуда нам знать, какой у тебя уровень.

Ответы>>794759

12 Июл, 22:36 #12 #794759

>>794754
Могу в кор джаву, отчасти могу в ведро и sql

Ответы>>794761

# OP 12 Июл, 22:37 #13 #794761

>>794759
Ну если SQL и базы данных хорошо знаешь, то тебе любой веб-бекенд несложно освоить.

12 Июл, 23:07 #14 #794796

Ананасы, изучаю всякие аяксы-хераксы. Такой вопрос, как можно покрасивше написать следующее выражение:

http://pastebin.com/raw/kTjqKr6V

Конкретнее говоря, интересует синтаксический сахар и возможность переноса параметров типа:

suka_index=<%= index %>

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

Ответы>>794801>>794811

12 Июл, 23:19 #15 #794801

>>794796
js.erb в 2016 году только dhh использует. Если не хочешь использовать современный технологии на фронте (реакт, ангуляр), то просто влепи jquery лапши и все, без всяких remote: true и вообще запросов к серверу.

Ответы>>794805>>797369

12 Июл, 23:26 #16 #794805

>>794801
Окей, тогда такой вопрос: из литературы что толкового можно почитать на эту тему. В конткесте рельсы желательно.

Ответы>>794812

12 Июл, 23:35 #17 #794811

>>794796
А где AJAX в твоём примере? Если тебе надо передавать данные из контроллера Rails в JS, то не советую делать это через вьюху. Я использовал https://rubygems.org/gems/gon , а потом перешёл на https://rubygems.org/gems/paloma

12 Июл, 23:37 #18 #794812

>>794805
Ох, мир фронтенда меняется просто невероятными темпами, так что писать книги об этом никто по-моему даже и не пытается. В целом на твоем месте, что бы не уходить далеко от дефолтных рельс, я бы начал с https://github.com/reactjs/react-rails. Ну а потом тебе ждет увлекательный мир webpack, babel, сервер-сайд рендера на nodejs, redux и тд, там сам уже разберешся.

Ответы>>794816>>794821

12 Июл, 23:44 #19 #794816

>>794812
По-моему, если уж пишешь фронтенд на таком зрелом стеке технологий, как React, то лучше сразу разделить фронт и бек на отдельные приложения в разных репах. Я начинал писать на Ember.js с помощью гема ember-rails и быстро пришёл к тому, что удобней разделять. Это и более логично, этакое разделение ответственности.

Ответы>>794820

12 Июл, 23:52 #20 #794820

>>794816
Я-то только за, хотя в отдельных репах держать не вижу смысла, держу просто в отдельной директории о которой рельсы не знают весь фронт, но судя по вопросам, которые он задает ему лучше начать просто с react-rails.

Ответы>>795165

12 Июл, 23:54 #21 #794821

>>794812
Ясно.

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

Пока что попадаются всякие мудаки, которые хотят чтобы им сделали сайт за еду и ОПЫТ (которого там естественно дать никто не может).

А в нормальные конторки пока знаний не хватает, ну или мне не везет, вот сейчас делаю тестовое задание, бак-енд там элементарный (для меня), а вот с фронт-ендом буксую. Отсюда и вопросы.

Ответы>>794909

Предыдущий 13 Июл, 04:27 #22 #794907

http://arhivach.org/thread/179456/

13 Июл, 04:34 #23 #794909

>>794821
>и фронтенд и бэкенд пишет
Дай угадаю. Речь идет о рашке? Только в рашкоконторках такой объеб - нужен и жнец и на дуде игрец. Ещё и тестовые задания выдают, совсем охуели. Небось неоплачиваемое ещё?

Ответы>>794959

sage 13 Июл, 08:40 #24 #794943

>>794666
А как ты капчу разгадываешь? антигейт?

Ответы>>794976>>794981

13 Июл, 09:11 #25 #794953

>>794666
тоже вечером скину своих контактов,будешь двух нубов тащить( но у меня дела лучше,во всяком случае простенький сервис на синатра\рельсах могу задеплоить на хероку)

Ответы>>794976

13 Июл, 09:15 #26 #794959

>>794909
Только в твоем манямирке делят фронт и бэк. Нахера платить двоим, когда один всё может? Даже если есть отдельный фронтендер - тебя это не избавит от необходимости знать фронт.

Ответы>>794976

# OP 13 Июл, 10:20 #27 #794976

>>794943
2ch API позволяет передать пасскод.
>>794953
Круто. Мне нужны пет-проекты, чтобы изучать что-то новое, что потом применю в работе. Также есть мысли создать потом команду на Upwork и работать вместе. Я мог бы во фронт перекатиться (React), а другой анон делал бы бекенд на рельсах.
>>794959
В реальном мире объем знаний слишком велик, чтобы профессионально знать и фронт, и бек. Это не невозможно, но требует намного больше времени на обучение. Часто эффективней специализироваться на одном. Конечно, знать фронт надо (как работают AJAX, long-polling, CORS, same origin policy и т.д.), но разбираться в реактах-ангулярах и тонкостях JS не нужно. В командах, где я работал, никогда один человек не занимался и фронтом, и беком.

Ответы>>794988>>795017

13 Июл, 10:43 #28 #794981

>>794943
> Небось неоплачиваемое ещё?

оплачиваемое.

13 Июл, 10:58 #29 #794988

>>794976
>Это не невозможно, но требует намного больше времени на обучение.
Ну и что? Эти люди существуют, поэтому никакого общего случая и "только в рашке" - не бывает. Мне интересно и то и другое, разбираюсь в реактах-ангулярах, но какое-то разделение было у меня только в одном проекте пока. В остальных все пилят фулл-стэк.

13 Июл, 11:59 #30 #795017

>>794976
>>794976
Бро, готов помочь с любой хуйней и учится хочу. По скилам: книгу хартла прочел, сейчас js учу.
добавляй в tox: sawkas

Ответы>>795023>>795107

# OP 13 Июл, 12:08 #31 #795023

>>795017
>добавляй в tox: sawkas
А это как добавить? Обычный ID можешь скинуть?

Ответы>>795032>>795107

13 Июл, 12:28 #32 #795032

>>795023
держи
0DB32E8690C21A1AE301391B4C676692C363598D81DEC1984991EA7F71B7CC7208507723E2F2

13 Июл, 14:33 #33 #795107

>>795023
>>795017
Why TOX? Сыро и непопулярно же. Гоу Telegram, но я пока сам. Базовые скилы надрочу, а потом могу присоединиться. Кто-то там выше неплохую идею подал - замутить команду для работы на апворке. В принципе может взлететь, если сработаемся.

Ответы>>795140

# OP 13 Июл, 15:28 #34 #795140

>>795107
>Why TOX?
Открытая технология.
> Сыро и непопулярно же.
Пользоваться можно. Непопулярно из-за тех, кто не пользуется ввиду непопулярности.
>Telegram
Голосового чата нет. Проблема с телеграмом в том, что не все пользуются, а регать на телефон надо. В принципе, в жаббере или слаке я бы сидел, если бы народ собрался. Но в Токсе даже временный email не нужен, запустил и общаешься. Не вижу причин избегать его установки.
>Кто-то там выше неплохую идею подал - замутить команду для работы на апворке. В принципе может взлететь, если сработаемся.
Я уже давно предлагаю, но раньше рубаны такой активности не проявляли. Если что, пиши в тред, как надумаешь контачить, я почти каждый день захожу. Или добавляй Tox ID 85FBA2F0CAEE460A5C1C445C550041BD0794B1D318FC34D00FBB7266326C1667F8DCC5665915

Ответы>>795248>>795334>>805969

# OP 13 Июл, 15:53 #35 #795165

>>794820
Кстати, сейчас глянул гем react-rails - это очень крутая штука. Он не отделяет фронтенд полностью, а очень прозрачно интегрирует компоненты реакта во вьюхи рельс. Причём он официально поддерживается разработчиками реакта. Думаю, это самое то для большинства обычных рельсовых проектов, где просто нужны мощные компоненты, или чтобы постепенно мигрировать с серверного рендеринга на SPA, например.

Ответы>>795230

13 Июл, 16:50 #36 #795230

>>795165
Последний раз когда я его использовал серверный рендер работал очень медленно и как я вижу из readme проблема все еще есть, так как они используют среды в которые mri не может (+ я использовал не therubyracer, хотя он бы проблему решил только частично), можно было бы справится с этим спавня пул nodejs воркеров и я так и сделал в последнем проекте в итоге. Плюс я думаю при серверном рендере будут проблемы с интеграцией с redux, хотя сам react-rails с redux не использовал, так что инфа не 100%. Но если серверный рендер не нужен и хочется просто начать использовать реакт в рельсах, то штука очень годная.

13 Июл, 17:11 #37 #795248

>>795140
о, нужно будет токс поставить

13 Июл, 18:57 #38 #795334

>>795140
>Если что, пиши в тред
Хорошо.

>Tox
Убедил, попробую установить. По идее, с момента моей последней инсталляции, а это было порядка года назад, могло многое измениться.

13 Июл, 22:03 #39 #795453

Если я за 4 часа не смог разобраться с devise и cancancan, мне пора забить на рельсу и смириться с тем, что это не мое?

Ответы>>795457>>795542>>796031

13 Июл, 22:10 #40 #795457

>>795453
> не смог разобраться с devise
Почитай:
Rails 4 in Action, Second Edition глава 6
Learning Devise for Rails

Ответы>>795578

14 Июл, 00:34 #41 #795542

>>795453
Тут даже не с рельсой проблема, а с программированием в целом. Рельса не первая и не последняя вещь которую придётся учить и разбираться и иногда просто не будет материал заходить и всё, не зависимо от того насколько ты умный и опытный, просто так бывает.

Ответы>>795578

14 Июл, 02:19 #42 #795578

>>795542
>не будет материал заходить
Не знаю как так получилось, но в той книжечке, которую скинул анон, было написано все тоже самое, что я читал в документации, но каким-то магическим образом я все понял.
>>795457
Спасибо, няш.

14 Июл, 17:03 #43 #796031

>>795453
займись девайсом, потом когда полностью разберешься, пробуй cancancan.
а еще лучше, юзай clearance и pundit

Ответы>>796050>>796440

14 Июл, 17:33 #44 #796050

>>796031
Я использовал Pundit с самого начала. Очень крутая штука, но в крупном приложении правильную модель данных, передаваемых в политику, очень сложно построить. Возможно, не стоит с него начинать новичками.

Ответы>>796981

15 Июл, 01:22 #45 #796440

>>796031
С девайсом вчера разобрался.
Вчера стал делать рейлстуториал по новой, только с гемами, оказалось, что хуево разобрался первый раз, стал заново читать документацию и остальную херню, вроде все понял.
Сегодня потыкаюсь с канканом и кериервейвомкастомные аватарочки припилю, а не ебучий граватар, надеюсь не буду сильно тупить и за день полностью раскурюсь.
Потом с эктивадмином разберусь.

Ответы>>796982

15 Июл, 20:42 #46 #796981

>>796050
не понял. чего сложного?
как по мне, он намного проще cancan

Ответы>>797035

15 Июл, 20:43 #47 #796982

>>796440
Лучше Administrate от thoughtbot. Намного проще, никакого ебучего дсл, старые добрые контроллеры и PORO

15 Июл, 21:35 #48 #797035

>>796981
Ну я запарился с действиями над коллекциями объектов. Чтобы понять, разрешать ли index, надо знать владельца записей в коллекции. И хотя в действии index контроллера я знаю, что он один и тот же, политика об этом не знает - надо проверять все элементы коллекции, что не очень эффективно. Я думал передавать эти данные в первом аргументе конструктора политики (который возвращается методом контроллера pundit_user), но они не рекомендуют так делать, советуя подумать над моделью данных (https://github.com/elabs/pundit#additional-context). А в какую сторону думать непонятно.

Ответы>>797041>>797143

15 Июл, 21:37 #49 #797041

>>797035
Стоит заметить, что policy#index? я проверяю не в контроллере (там достаточно policy_scope), а во вьюхах, чтобы понять, отображать ли ссылки на index-action'ы. В принципе можно исходить из этого, но пока плохо представляю как.

Ответы>>797357

15 Июл, 23:22 #50 #797143

>>797035
Ты неправильно делаешь. Нужно юзать scope, чтобы вернуть коллекцию разрешенных моделей, и делать authorize Class, а не authorize instance

Ответы>>797357

66 Кб, 699x512

16 Июл, 08:18 #51 #797347

Ищу рор джуна. Работа удалённо, без строгого графика.

Нужно:
- Работать с Rails 5
- Иметь представление что такое Postgresql
- Уметь работать с git
- Уметь в heroku
- Должен работать в linux\macos (windows юзеры де-факто не подходят, сорян)

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

С меня зп, менторство до стабильного миддла. Сразу указывай опыт, аккаунт на GH, месседжеры для связи и зарплатные ожидания.

Почта alex.doz.l8EatdANUSg!WmmailPUNCTUMcq@Com

Ответы>>797606>>797662

16 Июл, 08:56 #52 #797357

>>797143 -> >>797041
>Стоит заметить, что policy#index? я проверяю не в контроллере (там достаточно policy_scope), а во вьюхах, чтобы понять, отображать ли ссылки на index-action'ы. В принципе можно исходить из этого, но пока плохо представляю как.

16 Июл, 09:44 #53 #797369

>>794801
В проекте одной из топовых ру веб-дев команд до сих пор используется js.erb и remote: true. Только ньюфаг будет использовать какие-нибудь ангуляры, реакты, хуякты когда ему нужна асинхронность в 2х из 20 экшонов.

Ответы>>797393

16 Июл, 11:02 #54 #797393

>>797369
>В проекте одной из топовых ру веб-дев команд до сих пор используется
Сколько лет-то проекту?

>нужна асинхронность в 2х из 20 экшонов
Опять же в 2016 году это возможно, только в какой-нибудь админке (и то не очень качественной).

Ответы>>797404

16 Июл, 11:14 #55 #797404

>>797393
>>797393
>Сколько лет-то проекту?
Ему >3 лет, более 1 лимона юзеров, 10 серваков (статика + бд + само приложение)

>в 2016 году
Это возможно в любом проекте который пишется для бизнеса, а не для своего профиля на гитхабе. Наговнокодить, подключив хуеву тучу всяких библиотек всегда легко, а вот чистить это говно уже труднее будет. По этому люди, которые не первый коммерческий продукт разработали, понимают что самый действенный способ это "костыльнуть", проверить жизнеспособность этой реализации и отрефакторить её до читаемого вида. А дрочь на идеальный код осталась только у инфантильных дядечек, которые больше говорят чем пишут и у ньюфажиков которые не понимают приоритеты в бизнесе, но видели что "вот так вот делали в %корпорация нейм%, значит мы тоже так должны делать", только они не понимают что бюрократия это рак современного мира разработки.

Ответы>>797409>>797730

16 Июл, 11:19 #56 #797409

>>797404
Молодец, ты познал истину, спасибо что сообщил нам об этом.

Ответы>>797410

16 Июл, 11:23 #57 #797410

>>797409
Господи... Что же ты несёшь?

Ответы>>797414>>797615

16 Июл, 11:32 #58 #797414

>>797410
А ты?

Ответы>>797415

16 Июл, 11:35 #59 #797415

>>797414

29 Кб, 850x478

35 Кб, 664x322

16 Июл, 13:49 #60 #797479

Анон, знаешь про джекилл? На нем github-pages работает.
Мне почему-то казалось, что у него есть еще один аналог нет, не нодовский. Ты не помнишь?

Ну а вообще, бля, посоны, прикольная штука. Я вчера зашел на сайт, да так и прочитал весь мануал, оче понравилось.
Но, я был разочарован, что там все равно нужно клепать темы. Посмотрел существующие и там такой же зоопарк как для вордпресса и сделаны они по сути без особой огладки на markdown, который самой фишечкой и является.

Ответы>>797492>>797598>>797616

16 Июл, 14:09 #61 #797492

>>797479
Питоновский аналог, название очевидно.

16 Июл, 15:56 #62 #797598

>>797479
Генераторов статичных сайтов жопой дуй сейчас, сам на middleman'е статику для гх-пагес запилил.

Ответы>>797616>>797898

16 Июл, 16:11 #63 #797606

>>797347
Ментор хуев, где твой - то акк на gh?

Ответы>>797612>>799585

16 Июл, 16:19 #64 #797612

>>797606
gh так-то не нужен, но без нормального описания вакансии со ссылкой на hh, нахер такие вакансии нужны, слишком высок шанс работать за еду, клепая сайты одностраничники, охуенный опыт чо.

Ответы>>797614

16 Июл, 16:22 #65 #797614

>>797612
>со ссылкой на hh
Но ведь hh для быдла. Именно там сейчас сконцентрировано наибольшее количество говновакансий.

Ответы>>797622

16 Июл, 16:22 #66 #797615

>>797410
https://www.youtube.com/watch?v=FYMKvwxOZbI

Я несу Возмездие во имя Луны!

16 Июл, 16:23 #67 #797616

>>797479
>>797598
>Генераторов статичных сайтов
Могу перечислить основные, если кому нужно.

Ответы>>797898

16 Июл, 16:28 #68 #797622

>>797614
профайл на githubе еще менее информативен чем hh, во втором случае можно почитать о компании, посмотреть её портфолио, отзывы бывших работников поискать.

Ответы>>797627>>797711

16 Июл, 16:31 #69 #797627

>>797622
Тащемто похуй, лишь бы платили вперед и в долларах.

16 Июл, 17:08 #70 #797662

>>797347
От 120к вакансии есть?
стабильный миддл

16 Июл, 18:04 #71 #797711

>>797622
Учитывая место где мы находимся, гитхаб говорит о многом. На сосачике большинство хочет всё иметь и ничего не делать, а с такой позицией не только до миддла не доползти, с такой позицией только плакать о несправедливости мира. Пусть гитхаб будет с мёртвыми проектами, пусть там будут какие-то простые гемчики, пусть там даже твои конфиги будут - это говорит о тебе многое.

Ответы>>797728

16 Июл, 18:22 #72 #797728

>>797711
Мы говорим о гитхабе того анона, что тут людей хантит, а не соискателей. Вот мне непонятно зачем он нужен.

Отдельной котлетой идет гитхаб соискателя — вещь нужная, с этим глупо спорить, да.

Ответы>>797840

16 Июл, 18:25 #73 #797730

>>797404
>Ему >3 лет
Ну в старых проектах не только js.erb найдется.

>подключив хуеву тучу всяких библиотек всегда легко, а вот чистить это говно уже труднее будет
При чем тут куча библиотек или говнокод, тот же реакт это ровно одна библиотека, больше тебя никто подключать не заставляет. А вот этому самому говнокоду js.erb очень даже способствует, так как в большинстве случаев их суть сводится к попытке заменить контент какого-нибудь элемента на станице по селектору, в итоге через полгода кто-нибудь этот элемент на странице убирает или меняет, а js.erb остается. Можно, конечно, это все покрывать тестами, но вот проблема, один js.erb это минимум один капибаровский тест, которые скоростью не отличаются, в итоге появляется риск получить огромное время прохождения тестов.
Но на самом-то деле я говорил не про говнокод, а про вот это
>нужна асинхронность в 2х из 20 экшонов
А именно, о том, что обновление страницы при отправке запроса на сервер = хуевый юзер-экспириент в наше время.

Ответы>>797769

16 Июл, 18:56 #74 #797765

>>794668
Хайп на руби уже давно прошел

16 Июл, 19:05 #75 #797769

>>797730
>А именно, о том, что обновление страницы при отправке запроса на сервер = хуевый юзер-экспириент в наше время.
Турболинкс изобрели добрых 3-4 года назад, а ты всё ещё считаешь, что для асинхронной подгрузки страниц нужно использовать жс фреймворки... БРАВО!

Ответы>>797790

16 Июл, 19:26 #76 #797790

>>797769
>изобрели добрых 3-4 года назад
А 2 года назад большинство выкинуло этот костыль. Если нужны пруфы, то можешь посмотреть видео с конфы, где DHH презентует turbolinks 5.

>для асинхронной подгрузки страниц нужно использовать жс фреймворки
Я не считаю, что для подгрузки страниц нужно использовать js фреймворки (хотя для любого более-менее сложного приложения таки стоит их использовать). Но может быть ты не слышал, но запросы бывают не только GET и инфу с клиента на сервер таки иногда приходится отправлять и вот тут-то никаких рефрешей быть не должно и да замена всей страницы хтмлкой с сервера тоже считается.

Ответы>>798005>>798141

16 Июл, 20:37 #77 #797840

>>797728
Гитхаб хантера такая же котлета, как гитхаб соискателя. Надо посмотреть, что еще за ментор-хуентор.

166 Кб, 1027x915

16 Июл, 21:56 #78 #797898

>>797598
А в чем цимес мидлмана, можешь рассказать? Уже лень читать, бегло посмотрел не понял, что он дает.

>>797616
Во, я тут целую коллекцию с рейтингом нашел - https://www.staticgen.com/

Ответы>>797967>>797973

16 Июл, 23:07 #79 #797967

>>797898
Ну жекил для блога, а мидлмен для сайтов. Можно и блог из него запилить, там гем встрен для блогирования.

16 Июл, 23:13 #80 #797973

>>797898
>целую коллекцию с рейтингом нашел - https://www.staticgen.com/
кк

17 Июл, 00:10 #81 #798005

>>797790
>2 года
Как будто это маленький срок. 2 года назад были четвёртые рельсы. Сейчас пятые. 1 год это уже много для nowadays веб дева, а уж 2 и подавно. Аутист, отбрасывай свои комплексы, синдромы утёнка и начинай адекватно смотреть на вещи

17 Июл, 03:45 #82 #798141

>>797790
>Я не считаю, что для подгрузки страниц
Смотрите, дети, даун не слышал про shadow dom и изоморфность. Спешите видеть, джуниор-даун пытается выглядеть как мидл! Вот это цирк!

Ответы>>798416>>798419

14 Кб, 500x500

17 Июл, 15:46 #83 #798390

Подкиньте идею, что написать на Rails + React на тему криптовалют.

17 Июл, 16:09 #84 #798416

>>798141
>изоморфность
мой любимый мемас жс-даунов, лойс))

6 Кб, 184x184

17 Июл, 16:13 #85 #798419

>>798141
> shadow dom и изоморфность
Тормозящая параша и параша без задач?

41 Кб, 340x198

17 Июл, 17:34 #86 #798491

Решил изучить С, чтобы стать еще круче.
Начал с простого: добавил sum, на миллионных массивах работает в десятки раз быстрее, чем через инжект в активсаппорте (в 2.4, наверное, уже добавят в ядро, ну и похуй).

Собственное, может кто-нибудь знает еще какие-нибудь полезные алгоритмы, которые работают медленно на руби?

Ответы>>798643

17 Июл, 20:22 #87 #798643

>>798491
>может кто-нибудь знает еще какие-нибудь полезные алгоритмы, которые работают медленно на руби?
Полно сишных либ, для которых нет руби-биндингов. Их писать очень легко, но мало кто этим занимается. А экосистема решает. Посмотри проект https://github.com/SciRuby , может есть какие-то либы, которые надо поддерживать, неплохо поможешь сообществу.

Ответы>>799046

# OP 18 Июл, 09:39 #88 #799044

sawkas, ты куда пропал?

Ответы>>800067>>800271

18 Июл, 09:57 #89 #799046

>>798643
>SciRuby
Серьезно? Но нахуя?

Ответы>>799048

# OP 18 Июл, 10:04 #90 #799048

>>799046
Статистика, аналитика, машинное обучение, дата майнинг.

Ответы>>799053

18 Июл, 10:24 #91 #799053

>>799048
Это понятно, я говорю зачем руби? Питон или R проходят тут гораздо лучше.

Ответы>>799076

18 Июл, 10:56 #92 #799076

>>799053
>Питон проходит тут гораздо лучше.
Чем же? Те же яйца
>R
R язык узкоспециализированный, на нём тяжело крупные программы писать. Есть биндинги из Питона и Руби в R, чтобы использовать его богатую библиотеку и огюромное количество пакетов.

18 Июл, 13:42 #93 #799183

Мдэээ. R не подходит для датамайнинга от слова "совершенно". Для анализа данных и стат анализа - да. Для массивных задач - нет. Из-за тормозов интерпретатора в основном. А вы еще хотите одну динамикодрисню вызывать из другой.

18 Июл, 14:07 #94 #799200

А где сам код на автоперекат? Если задал тупой вопрос, то сорри.

Ответы>>799980

18 Июл, 21:37 #95 #799585

>>797606
https://github.com/doz
Гугол жи есть.

Ответы>>799710

18 Июл, 22:36 #96 #799665

Ананасы, поделитесь алгоритмом нахождения небольших, но годных проектов для контрибьюта на опенсорсный гит. Хочу скилл покачать, да и быть ОБЩЕСТВЕННО ПОЛЕЗНЫМ, как это нынче модно.

Ответы>>799740

18 Июл, 23:16 #97 #799710

>>799585
Cпасибо. Привык больше гуглить по работе и интересам, чем ананасов с двача.

Ответы>>799769

18 Июл, 23:51 #98 #799740

>>799665
github explore

19 Июл, 00:28 #99 #799769

>>799710
Ммм, наверное ты очень занятой человек, раз у тебя нет 5 секунд на то, чтобы выделить и нажать найти в гугле. Небось грузчиком работаешь, все виды хватов мешка загуглил и изучил?

Ответы>>799959

19 Июл, 09:48 #100 #799959

>>799769
А какой шанс что что-то нагуглится по анонимному хую, вроде тебя? Ты и 5 секунд не стоишь.

85 Кб, 540x960

19 Июл, 09:56 #101 #799971

Если руби ещё жив, то почему количество работы постоянно снижается?

Ответы>>799978>>799982

19 Июл, 10:12 #102 #799978

>>799971
почему 2012, а не какой 2007, бгг

19 Июл, 10:13 #103 #799980

>>799200
https://github.com/meoweg/Perekatach

79 Кб, 1366x768

19 Июл, 10:17 #104 #799982

>>799971
Ещё меньшего разрешения найти не мог? Это обычные флуктуации. Начальное и конечное значение почти равны.

6 Кб, 943x100

19 Июл, 12:10 #105 #800023

Чому так? Почему скоуп working не применился? Я дебил?

Ответы>>800026>>800059>>801436

5 Кб, 1062x55

19 Июл, 12:12 #106 #800026

>>800023
Причем с reject все работает.

Ответы>>800059>>801436

19 Июл, 13:02 #107 #800059

>>800023
>>800026
А у тебя статус - текстовое поле или enum?

Ответы>>800186

19 Июл, 13:30 #108 #800067

>>799044
ОП, я тебя зафрендил, но ты всё никак не принимаешь френдреквесты в токсе. пишу сюда, потому что вдруг там что-то пошло не так

Ответы>>800300>>800327

19 Июл, 15:28 #109 #800186

>>800059
string в базе

Ответы>>800301

19 Июл, 17:02 #110 #800271

>>799044
Бро, сорян, не смогу с перекатачем помоч

Ответы>>800300

# OP 19 Июл, 17:28 #111 #800300

>>800067
Отправь снова
>>800271
А что так?

# OP 19 Июл, 17:29 #112 #800301

>>800186
Ну тогда хз. Проверь, что строка правильно сохраняется, без лишних символов. Покажи как скоуп в модели написан.

13 Кб, 200x200

# OP 19 Июл, 18:02 #113 #800327

>>800067
Ладно, давай скайп

Ответы>>800530>>801121

19 Июл, 19:09 #114 #800413

Правда что руби умирает и новые проекты на нем уже никто не пилит и вообще молодёжь ебошит на пхп ларавел?

Ответы>>801046

19 Июл, 20:11 #115 #800509

Сап
Есть апп на хероку, в нем в админке нету вьюхи которая есть на локали, хз мб апп надо рестартнуть, не подскажете как?

19 Июл, 20:34 #116 #800530

>>800327
Я только пришёл, чуть позже попробую опять. Если что, то напишу скойпек.

19 Июл, 22:49 #117 #800705

>>794342 (OP)
> пора перекатываться на linux/mac
Традиционно обоссал прыщеблядка.

Ответы>>800827

20 Июл, 00:43 #118 #800827

>>800705
Традиционно так высоко задрал ногу, что попал под свой же дождь.

20 Июл, 10:30 #119 #801046

>>800413
Не правда

20 Июл, 13:00 #120 #801121

>>800327
Видимо, в токсе таки не судьба но он мне тоже нравился, скайпик neonpantsu

20 Июл, 17:23 #121 #801368

>>794342 (OP)
А правда что рельсы умирают и будущее за node.js/php/go?

Ответы>>801386>>801401

20 Июл, 17:36 #122 #801381

Я понимаю что это пиздец элементарщина, но чет нихуя не получается. Есть самописная админка со списком юзеров. За нее отвечает админ контроллер. Можно редактировать юзера, за это отвечает экшон admin#user который есть в роутс под гет методом. В методе user я передаю
@user = User.find(params[:id])

В соответствующей ему вьюхе, я хотел заюзать form_for а дальше пиздец.
Если писать просто form_for @user то получаю undefined method `user_path' for #<#<Class:0x007f69ec188370>:0x007f69ecb68a70>

Обьявил пустой метод в админке update_user
Пишу
<%= form_for(@user, :url => admin_update_user_path(@user), html: {class: 'user-info', method: :post }) do |f| %>
Добавил его в роутс, по сабмиту офк ничего не происходит, что делать я не знаю, гуглил но ничего не помогло, хелп гайс.

Ответы>>801389>>801500>>802658>>802665

20 Июл, 17:41 #123 #801386

>>801368
Уже умерли, не тереби прах.

sage 20 Июл, 17:44 #124 #801389

>>801381
покажи роуты http://localhost:3000/rails/info/routes

Ответы>>801391

20 Июл, 17:47 #125 #801391

>>801389
В роутах все методы есть. Короче я еще поресерчил и добавил в тело апдейт хоть какой-то код, и теперь вроде отрабатывает. Понимаю что похоже будто сразу побежал просить помощи, но два часа искал и ничего, а тут отписался и сразу бац сам нашел.
def update_user
user = User.find(params[:id])
if user.update_attributes(params[:user])
redirect_to '/admin/users'
end
end

20 Июл, 17:58 #126 #801401

>>801368
>будущее
>php
Ну хуй знает.

Ответы>>802673

20 Июл, 18:34 #127 #801436

>>800023
>>800026

Что делает метод include?
Ты, наверное, хотел написать select.

Commision.working.include { |с| c.finishible? } посмотри что вернет. Скорее всего класс. Поэтому count - вызывается не по отношению к массиву, а по отношению к классу. И считает все имеющиеся у тебя записи.

Можешь даже так сделать
Commision.working.method(:include).source_location

И посмотри, что у тебя в том файле будет. Скорее всего определение функции delegation.

Метод миссинг, вся хуйня. Вот так можешь написать хуйню, а потом страдать, из-за всякого метапрограммирования. Поэтому хуйню лучше не писать.

Ответы>>801489

20 Июл, 19:20 #128 #801489

>>801436
В active record нет такого метода include, в рубях и рельсах вообще нет такого метода include, потому что переопределение синтаксиса базового языка — очень, очень плохая идея.

Но есть методы: includes и include?, и ятп тот анон хотел использовать второй метод.

Ну и еще: select позволит узнать количество записей, но тут такая тонкость: от ActiveRecord::Relation объекта мы перейдем к объекту типа Array. Если нужно работать с отношениями (то есть фактически с базой данной), то вместо select подошел бы метод where.

Мимо-джуно-анон.

Ответы>>801500>>802562

20 Июл, 19:29 #129 #801500

>>801489

Все зависит от того, что делает finishible?
Если логика не сложная, то можно оформить её в виде where

бтв, лучше использовать count.

Commision.working.cound { |c| c.finishible? }

>>801381
http://rusrails.ru/getting-started-with-rails

Пройди это, Такой небольшой туториальчик, который поможет тебе упорядочить свое представление (хоть немного).

> Понимаю что похоже будто сразу побежал просить помощи, но два часа искал и ничего, а тут отписался и сразу бац сам нашел.

https://ru.wikipedia.org/wiki/Метод_утёнка

Ответы>>801521

20 Июл, 19:40 #130 #801521

>>801500
> Если логика не сложная, то можно оформить её в виде where

А разве тут критерий — сложность?

Мне вот казалось что основная разница в том, что в первом случае (когда select) основная работа ляжет на rails app по вычислениям этого самого select, а во втором случае (когда where) active record прост трансформирует запрос в какой-нибудь SQL и все вычисления будут проходить внутри базы данных, а rails app получит уже готовый ответ.

Ответы>>801529

20 Июл, 19:49 #131 #801529

>>801521
>c.finishible?

Он вызывает функцию finishible?
А чо эта функция делает. Вдруг она берет данные из какого-нибудь монго, и из постгреса их никак не вытянуть.

>active record прост трансформирует запрос в какой-нибудь SQL

Вот было бы охуенно, если бы active record мог такое делать с функциями.

Ответы>>801540

20 Июл, 20:02 #132 #801540

>>801529
> Вот было бы охуенно, если бы active record мог такое делать с функциями.

Ну так, напиши, хз. Т.е. вместа запроса вида

Djoppa.where('price >= ?', 500)

Параметром будет анонимная функция:

Djoppa.where { price >= 5 }

Ответы>>801571

20 Июл, 20:30 #133 #801571

>>801540
Class AnalSex
def finishible?
sensitivity = Djopa.find(djopa_id).anus_sensitivity
normalized_dick_circumference = DickNormalizer.new(Dick.find(dick_id)).circumference

time_for_anal_orgazm = Math.exp(sensitivity - normalized_dick_circumference)
current_sex_time = Time.in_time_zone.now - start_sex
current_sex_time >= time_for_anal_orgazm
end
end

Давай, напиши это через where

Ответы>>801574

20 Июл, 20:33 #134 #801574

>>801571
>time_for_anal_orgazm = Math.exp(sensitivity - normalized_dick_circumference)

Поправочка

time_for_anal_orgazm = Math.exp(1/sensitivity - normalized_dick_circumference)

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

22 Июл, 04:39 #135 #802530

Сап, на протяжении последних 2-3х месяцев, вкатывался в веб, смог в адаптивную верскту(jade, haml, slim, sass, немного js(es6, cofeescript), brunch, bower, git), сверстал несколько макетиков, решил углубиться в жс, но забил и стал разбираться в рубях, прочитал книжонку хартла, делаю интернет магазин для практики, с основной частью(самых используемыхdevise,cancan, carrierwave, activeadmin) гемов разобрался. Что еще нужно знать, чтобы вкатиться в работу и как это сделать?

Ответы>>802559>>802662>>804915

22 Июл, 06:33 #136 #802543

PG::ConnectionBad: FATAL: password authentication failed for user "vagrant"

Как пофиксить? менял в pga_hba peer на password, перезапускал, не помогает

Ответы>>802566

22 Июл, 08:28 #137 #802559

>>802530
Тебя самого херней страдать не заебало? Весло в руки и пиздуй работать.

22 Июл, 08:31 #138 #802562

>>801489
> переопределение синтаксиса базового языка — очень, очень плохая идея.
А вот этим говноедам норм.

https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers/include-matcher

22 Июл, 08:56 #139 #802566

>>802543
Зайди из-под супер юзера, дай вагранту права и пароль смени. Должно помочь.

22 Июл, 10:49 #140 #802601

Аноши, помогите с деплоем.
Скиньте ссылку на рабочий гайд по деплою с nginx capistrano unicorn postgres

Ответы>>802729

111 Кб, 600x281

22 Июл, 11:13 #141 #802612

Знаю, что платина но мне просто больше негде спросить

Как вы находите удалёнку? Всегда слышал, что у рубистов в этом плане всегда было проще всего. Живу в ебической мухосрани к тому же и в Казахстане с it здесь лютый пиздец, про раби даже не слышал никто. И, честно говоря, кроме пресловутой rubyjobs с её тремя с половиной вакансиями я вообще не ебу, где искать. Английский разговорный, но вряд ли мне это поможет, ибо коммерческого опыта в рельсах у меня нет, одни только самодельные бложики/клоны твиттера. Как быть, анансы? Помогите, пожалуйста. Хочется кушать, а размениваться на php-говноедство и прочее - совсем не стоИт.

Ответы>>802662>>802898

22 Июл, 11:32 #142 #802630

Аноны,я зеленый в этих ваших рельсах.
Есть задача. сделать что то вроде веток диалогов в приложении.
типа "есть ли у вас %хуйнянейм%" и 4 варианта ответа, при нажатии на один из них возвращается еще 4 варианта,при нажатии на которые...
в консольке все это реализуется топорно,кучей веток if/elsif ,можно хэшем,а вот как в рельсах?
Нихуя кроме рельс не знаю,даже ебучий жс,учу кодинг всего 3 месяца

Ответы>>802662

22 Июл, 11:54 #143 #802658

>>801381
Пидор блять, ты если проблему решил, пиши каким образом. Чтоб аборигены последующие, которые это увидят могли понять что к чему. ууууууу сука

# OP 22 Июл, 11:58 #144 #802662

>>802530
Напиши мне в скайп krowpu. Помогу советами, оценю твой скилл, может вместе что-нибудь попробуем.

>>802612
>rubyjobs с её тремя с половиной вакансиями
Там достаточно много вакансий, просто нужно активно мониторить и писать.
>Английский разговорный, но вряд ли мне это поможет, ибо коммерческого опыта в рельсах у меня нет
Я вкатился на Upwork вообще без коммерческого опыта. Гугли статьи по вкатыванию.

>>802630
>в консольке все это реализуется топорно,кучей веток if/elsif
Ты ведь не только в рельсах новичок, но и программировании, да?

Реализуется элементарно. Делаешь в модели ассоциацию, указывающую на саму себя many to many. Создаёшь связующие модели в after_save callback'е (например, парсишь текст сообщения на наличие ссылок на другие сообщение, как на бордах).

Посколько JS ты не знаешь, делай MessagesController, где в #show помимо сообщения будут отображаться также ответы на него.

Ответы>>802682

22 Июл, 12:00 #145 #802665

>>801381
>Есть самописная админка со списком юзеров. За нее отвечает админ контроллер. Можно редактировать юзера, за это отвечает экшон admin#user который есть в роутс под гет методом.
Ты всё делаешь неправильно. Контроллер отвечает за ресурс, а его методы - за действия над ресурсом. Не мешай несколько ресурсов в один контроллер. Есть простое правило - именуй действия как глаголы.

22 Июл, 12:14 #146 #802673

>>801401
Вот недавно 7-я версия выкатилась: https://habrahabr.ru/company/badoo/blog/279047/
По-моему, весомо.

Ответы>>802688

22 Июл, 12:29 #147 #802682

>>802662
спасибо

22 Июл, 12:35 #148 #802688

>>802673
Руби скоро опциональную статическую типизацию введет, а они только-только JIT сделали.

22 Июл, 12:38 #149 #802691

Супчанский!
Сколько переменная живет в сессии? И сколько можно по максимуму выжать?
Есть форма поиска, данные из которой забираются в сессию и оттуда препопулейтятся везде где можно
В идеале нужно чтобы жила до следующего поиска, но юзать дб для этого как-то топорно мне кажется.

Ответы>>802695>>802698

22 Июл, 12:41 #150 #802695

>>802691
>Сколько переменная живет в сессии?
Пока пользователь не очистит куки.
>В идеале нужно чтобы жила до следующего поиска, но юзать дб для этого как-то топорно мне кажется.
Сессия хорошее место для таких целей.

Если размера сессии в куках не хватает, попробуй хранить сессию в редисе. В куках будет только ID.

22 Июл, 12:42 #151 #802698

>>802691
А, ещё в HTML5 есть local storage, но с ним не приходилось работать. Его размер вроде регулируется настройками в браузере.

22 Июл, 13:58 #152 #802729

>>802601
>capistrano
Не советую. Капистрана - говно с глобальными переменными и постоянно отваливающееся. Лучше вкатись в Chef. А ещё лучше Docker (или и то, и другое). Docker сложно, но оно того стоит.

Ответы>>802899

22 Июл, 15:10 #153 #802766

Cука как я люблю рельсы. Все красиво, все акуратно, гитхабовская подсветка иде подходит, можно думать про то как написать красиво а не про то КАК СУКА НАПИСАТЬ ЕТО. Фреймворк будущего на языке для нормальных людей.

Ответы>>803850

22 Июл, 15:46 #154 #802786

Аноны, сколько вы в среднем зарабатываете в месяц?

Ответы>>802862>>802900

22 Июл, 18:43 #155 #802862

>>802786
200 баксов, ебануться, как обезьяна

Ответы>>802905

22 Июл, 20:21 #156 #802898

>>802612
hackernews we're hiring, reddit, jobspotting, weworkremotely ТЫСЯЧИ ИХ

22 Июл, 20:22 #157 #802899

>>802729
Ты вообще понимаешь что capistrano и chef используются для разных задач и нередко вместе? лол.

22 Июл, 20:23 #158 #802900

>>802786
Где то штуку зеленых. Для студентика это ОХУЕТЬКАК. много.

22 Июл, 20:47 #159 #802905

>>802862
А чем занимаешься, что получаешь так мало?

Ответы>>802907

22 Июл, 20:51 #160 #802907

>>802905
Всем, бекенд, фронтенд, кьюэй, ПЕРЕЖМИ ВИДЕО ДЛЯ ДРУГОГО ЗАКАЗЧИКА И СДЕЛАЙ КАРТИНКИ В НОРМ КАЧЕСТВЕ В ЦМСКЕ, УСТАНОВИ ГУГЛ АНАЛИТИКУ И ПОЕБИСЬ С ДРУПАЛОМ а платят мало потому что это типа фриланс через посредника. Хз, думаю до конца 3 курса так отпахать, потому что удобно, график более-менее свободный в последнее время нет, а там если без перспектив то пойду устроюсь куда-то.

Ответы>>802920

22 Июл, 21:08 #161 #802920

>>802907
Хм, странно. Я думал, что ты там халтуры на пару часов в неделю делаешь. За такие-то копейки, даже 1С-ники в менее унизительном положении.

Ответы>>802987

22 Июл, 22:24 #162 #802987

>>802920
Да это хуйня. Пока на меня не вышел этот челик, я вообще хуи пинал и верстал говно, эта зп позволяет покупать игори и вкусно жрать, даже на пеку откладываю. Больше напрягает то что как мне кажется, в работе все цепляю поверхностно, чтобы писать красивый код и вникать в детали, надо овертаймить, а обычно и вовсе не получается. А хочется же еще книги, блоги, дайджесты читать чтобы быть в теме, задрочить какую-то технологию новую, тот же ангуляр, но времени нету. Даже когда аноны выше стакались провтыкал, а хотел бы попиздеть с кем-то немного

Ответы>>803001>>804920

22 Июл, 22:31 #163 #803001

>>802987
Так в чём проблема углубляться и дропнуть это говно? Опыт у тебя уже есть, не думаю, что будет очень сложно найти новую работу.

Ответы>>803004

22 Июл, 22:35 #164 #803004

>>803001
Говорю же, позже так и сделаю, мы когда говорили про мой дропаут, он просил предупредить заранее. Тем более сейчас два живых проекта на рельсах, один из них достаточно серьезный, и в связи с ним иногда проскакивают намеки типа у заказчика есть планы еще минимум на полгода, и что у меня есть хорошие перспективы, вплоть до управлять своей командой, и все такое. Да и просто не круто кидать парня.

ActiveModelSerializer 23 Июл, 00:05 #165 #803113

Посоны, помогите -сортировку-пузырьком-сделать- хз как страйк-текст делать

Мне нужно сделать вот такую штуку: есть объект эктиврекорд SomeModel. У него есть поле, которое хранится как хеш. Напрмер:
SomeModel.new(
title: 'Awesome',
props: {p1: 1, p2: 2}
)
Мне нужен такой сериалайзер, который вернет такую структуру:
{
title: 'Awesome',
props: [{property_1: 1, property_2: 2}]
}
То есть я хочу взять обычные поля модели, а хеш-поле обернуть в массив и поменять ключи. То есть хочу, чтобы для props тоже использовался кастомный сериалайзер. Но не получается сделать. Делаю так:

class PropsSerializer < AMS
attribute :p1, key: :property_1
attribute :p2, key: :property_2
end

class SomeModelSerializer < AMS
attribute :title
attribute :properties do
ActiveModel::Serializer::ArraySerializer.new([object.porps], serializer: PropsSerializer) # each_serializer не работает вообще
end
end

Выдает ошибку, что не может найти метод read_attribute_for_serialization для хеша props.

ActiveModelSerializer 23 Июл, 00:05 #165 #803113

Посоны, помогите -сортировку-пузырьком-сделать- хз как страйк-текст делать

Мне нужно сделать вот такую штуку: есть объект эктиврекорд SomeModel. У него есть поле, которое хранится как хеш. Напрмер:
SomeModel.new(
title: 'Awesome',
props: {p1: 1, p2: 2}
)
Мне нужен такой сериалайзер, который вернет такую структуру:
{
title: 'Awesome',
props: [{property_1: 1, property_2: 2}]
}
То есть я хочу взять обычные поля модели, а хеш-поле обернуть в массив и поменять ключи. То есть хочу, чтобы для props тоже использовался кастомный сериалайзер. Но не получается сделать. Делаю так:

class PropsSerializer < AMS
attribute :p1, key: :property_1
attribute :p2, key: :property_2
end

class SomeModelSerializer < AMS
attribute :title
attribute :properties do
ActiveModel::Serializer::ArraySerializer.new([object.porps], serializer: PropsSerializer) # each_serializer не работает вообще
end
end

Выдает ошибку, что не может найти метод read_attribute_for_serialization для хеша props.

Показать весь текст
Ответы>>803737

23 Июл, 01:17 #166 #803180

Есть две модельки, типа сервисы и категории сервисов. ТЗ стоит сделать чтобы при создании или редактировании сервиса можно было сразу положить в модель категорий связанные категории. Т. е есть форма для сервиса, в ней надо разместить форму для категории, когда одна форма заполнена сколлапсить поля и подгрузить новую (т.е можно получить мого хешей для категорий), а по сабмиту формы сервиса надо пройтись по хешу этих значений и соответствующе их обновить. Конечно вообще вся идея звучит тупо, и по реализации и по UX но может что-то подскажете? В конце, когда у меня был бы на руках хеш в с вложенными хешами я бы все сохранил, там понятно, сами формы понятно как добавить каким-нить аяксом из жиквери, а как мне саму форму написать, и как связать всю инфу, чтобы все введенное получать по сабмиту?
Мне кажется в названия полей можно давать любые символы, типа :cat[:1][:field1] и выехать на этом, но не уверен. Подскажете пока не наделал хуйни?

Ответы>>803272>>805557

23 Июл, 05:35 #167 #803272

>>803180
Нарисуй на бумажке, поток сознания ты ходячий.

ActiveModelSerializer 23 Июл, 23:14 #168 #803737

>>803113
Upadate:
Сделать сериалайзер для хеша и обернуть его, как хотел получилось. Просто для этого сериалайзера определил метод read_attribute_for_serialization, лол, который читает значения из хеша.

Но теперь другая ебанутая проблема. Мне нужно использовать key_transform, чтобы на выходе получать CamelCase-ключи. И блять эта опция нормально работает со всеми адаптерами (:json, :json_api), но вообще не учитывается при адаптере :attributes (простой адаптер - as is). А именно он мне нужен.

Ответы>>805557

24 Июл, 00:17 #169 #803796

Такие мелочи по бест практисес, какие хуй где спросишь, разве что на моем любимом двачике или на СО. Как лучше сверстать список социалок фашными иконками, link_to '...' do fa_icon '...' end или не выебываться и обычными тегами? Второе, норм ли логические поля модели называть is_... Будут еще вопросы, еще спрошу. Какая-то хуйня с формами на сосаче курсор скачет ебучий попап появляется хотя печатаю в обычной форме, не могу даже строку переносить, охуенно бля сделали.

Ответы>>803812>>803849>>805557

24 Июл, 00:34 #170 #803812

>>803796

на гитхабе есть гайды по best практикам как по руби, так и по рельсе. Если в чем-то сомневаешься, то посмотри там. Ну а если лениво, искать на вопросы типа:

> норм ли логические поля модели называть is_

то, можно получить ответ, прогнав свой код через рубокоп. В данном конкретном случае, как я помню, он должен будет пиздеть на то что лучше использовать суффикс «?», а не префикс «is_» в названии метода.

По-первому вопросу не понял. У тебя есть много однотипного кода? Ну заверни, в партиал. Стили в нём можно классом задать, тогда партиал на вход будет принимать один параметр.

Ответы>>803817

24 Июл, 00:38 #171 #803817

>>803812
Да нет, там все ок, просто рельсы позволяют получить тот же результат или хелперами, или html. Вопрос был в том, нормально ли юзать хелперы для таких мелочей. Тот же линк ту понятно зачем нужен если линковаться на методы, но если ссылка на статику, еще и внешнюю, стоит ли его юзать?

А насчет ? в названии полей, я просто не был уверен что пг с такими форматами названий работает, спс.

Ответы>>805557

24 Июл, 01:38 #172 #803849

>>803796
>Второе, норм ли логические поля модели называть is_

Нет, аттрибут называй просто active, но в коде юзай active?

Ответы>>803909

24 Июл, 01:40 #173 #803850

>>802766
Когда начинал работать с рельсами тоже так думал.

24 Июл, 02:00 #174 #803857

Сап двач, давайте похоливарим на тебу IDE и редакторов и оболочки(KDE,GNOME,вм всякие).
Начну с себя. мой сетап это Xmonad, spacemacs. Раньше был ярым приверженцем Rubymine, но потом заебало трогать мышь постоянно, пробовал IdeaVim но показался сыроватым.в итоге перекатился с адовой болью на спейсмакс и в принципе доволен

Ответы>>803885>>804922

24 Июл, 03:16 #175 #803885

>>803857
Блядь, к тебе специального человека, что - ли приставили, который смотрел чтобы ты шоткаты не нажимал? Я сам не в восторге от продуктов jetbrains, но это лучшее что есть, ходить по вимам и саблаймам это какой - то детский сад. Имакс в общем тот же цирк.

Ответы>>803890

24 Июл, 03:40 #176 #803887

Нормас кстати писать запросы такого типа?
Category.where(id: ArtistCategory.where(id: booking.artist_category_id).first.category_id).first.name
Просто booking - это элемент массива upcoming_bookings который возвращается соответствующим методом для модели юзера (current_user.upcoming_bookings) и по которому я потому итерируюсь. Запрост отрабатывает, но я не знаю как по другому эти данные передать, чтобы не было так топорно.

Ответы>>805557

24 Июл, 04:00 #177 #803890

>>803885
в смысле шорткаты не нажимал? я очень много времени потратил на то чтобы выучить кучу рубимайновских шорткатов и даже там свои кастомные пилил(гдето 20-30 поверх получилось). основная моя претензия это то что нельзя переключаться между окнами эдитора нормальным способом. аля альт+1 и тд.алсо в эмакса автокомплт только чуть чуть хуже. аргументируй плз

Ответы>>803899>>820651

24 Июл, 05:23 #178 #803899

>>803890
Те же притензии к рубимайну. Аргументация по несерьезности приседаний с вимом или имаксом все одна и та же - это текстовые редакторы с удобными наворотами для редактирования _кода_. В том же поделии от брейнсов крутятся 40 -50 потоков в которых выполняются задачи по синтаксической проверке кода, его форматированию и расцветке (не на голожопых регулярках - а по AST), синхронизацией с моделью проекта, управлению зависимостями, индексацией, проверкой стиля - кучу всего делается. Главное - все эти задачи работают с кодом и сопутствующими моделями.

Вот здесь пример - как клоун с десяток минут вдупляет в виме пропущенную запятую https://www.youtube.com/watch?v=us8AMJKEzZg лишь потому что он у мамы вим-хакир и не такой как все. После того как ошибка найдена - что -т там оправдывается (не помню точно - слушал в фоне его страдания). Там js, но суть та - же, была бы у него IDE, не было бы заморочек.

Ответы>>803900>>803904

24 Июл, 05:23 #179 #803900

>>803899
s/_кода_/_текста_/ конечн же

24 Июл, 06:03 #180 #803904

>>803899
В чем то согласен в чем то нет. только проблема имено Рубимайна в том что руби дохуя динамический язык. вот если ты когданибудь писал на жаве или прочей статике то,наверняка замечал как ахуено работает иде. автокомплит практически идеальный и тд. вот там я считаю ИДЕ незаменимым но мы говорим о руби. не знаю как у вас господа но у меня как правило рубимайн нихуя не угадывет ).На счет других задачей. вот ты чем делаешь проверку стиля и проверку формата в рубимайне? дай угадаю рубокопом. ибо рубимайн не так хорошо подсказывает. такой же плагин(даже лучше)есть для емакса.потом идексация вот тут я хуй знает я в принципе не думаю что она очень необходима из за того что авто комплит хуйня, хорошо конечно когда у тебя рубимайн угадывает has_many и рекуаеры но киллер фича ли это? не думаю. навигация по проекту как по мне каким то хуем лучше у емакса вот юзкейс. Преположим мы находимся в гемфаиле. нам нужно попасть в модель компани в рубимайне это намного больше действий даже с шорткатом.синтаксичейская проверка кода это конечно да круто. кстати я не уверен что емакс проверяет руби код регулярками. лукс лайк он проверяет его с помошью руби ит селф

Ответы>>803905>>804044>>820654

24 Июл, 06:06 #181 #803905

>>803904
Ах да если уж и говорить о киллер фичах рубимайна так это дебагер. вот чесно держу рубимайн на другомворкспейсе только для этого. дебагинг через прай у меня вызывает попа боль

24 Июл, 06:18 #182 #803909

>>803849
Спорно. Когда дохера таких полей набирается мне лично тяжело различать кто есть кто без is.

Ответы>>805557

24 Июл, 06:34 #183 #803910

Сап, начал учить руби и возник вопрос.
Допустим есть 2 контроллера PagesController, ItemsController.
Как нам передать @items во въюху index.html.erb PagesController'a ?

Ответы>>803911>>803912

24 Июл, 06:38 #184 #803911

>>803910
Как я понимаю, у тебя @items это обьект модели? Тогда без разницы в каком контроллере, в нужном экшене на последней строке сеттишь значение (@items = Item.all) и оно будет доступно в соответствующей вьюхе

24 Июл, 06:40 #185 #803912

>>803910
так чувак погоди) зачем передавать одну перемную из одного которллера в другой. это плохо не надо так делать. в обоих котроллерах пишел @items = Items.all. так как итемс инстанс вариабле то она будет доступна во всех вьюхах данного контролера

Ответы>>803913

24 Июл, 06:40 #186 #803913

>>803912
бля хуйня сказал. во всех вьюхах данного экшена( в патриалах всмысле)

24 Июл, 07:32 #187 #803921

Для меня единственное преимущество IDE от жидовских мозгов это то что они какой-то магией могут сразу настроить рабочее окружение и можно сразу начать пиздюшить код, запускать его , ну и дебажить. Автокомплит и какая-то супер-мега подсветка это всё не киллер фича.
Другое дело что такой быстрый старт нужен как правило начинающим, которые всё равно не будут лазить по менюшкам и менять дифолты, а когда тебе нужна кастомная конфигурация, то проще самому текстовики отредактировать или просто скопировать и сам код писать и запускать в связке с emacs/vim, screen/tmux.
А начинающим вообще лучше не брать IDE, чтобы видели все ошибки и знале что из чего следует, а не то что дебаг это фича IDE.

24 Июл, 08:43 #188 #803934

Есть хеш в котором лежат несколько записей модели. В том числе у записи есть поле :order, как отсортировать хеш по нему?

Ответы>>803935

24 Июл, 08:53 #189 #803935

>>803934
Ебануться, для этого встроенный метод есть

24 Июл, 13:15 #190 #804043

Знающий анон, подскажи, как научиться нормально покрывать тестами приложение на рельсах? Мне не документация нужна, а именно понимание, с чего я должен начать, как всё сделать правильнее и т.д. С чего обычно начинаешь ты?
Вот каждый раз сажусь за тесты и, либо малополезные тесты выходят, либо какую-то полную ахинею пишу. Может есть что покурить по этой теме? А то я скоро с ума сойду уже, СЛОЖНА.
С меня как всегда.

Ответы>>805557

24 Июл, 13:19 #191 #804044

>>803904
Да, работает слабенько автодополнение. Но опытным путем обнаружил, что IDE чуть умнее, если включать require / require_relative в самом файле. Только кто же так делает? В нашем проекте, по-кр мере, не принято.

24 Июл, 13:53 #192 #804062

Да забыл упомянуть один из ключевых плюсов емакса. ахуено работает с xmonad. у меня пока к сожалению моник всего 19 дюймовю и очень спасает. со след зп возьму 21:9 мне кажеться от ВМ тоже будут профиты. Ваше аноны. интересно же кто чем пользуется :)

24 Июл, 15:08 #193 #804126

Аноны, тут есть добрые саморитяне которые купили Fgile web Developments with Rails 5 Beta?Может кто выложить для своих?
P.S.
тут кому-то нужен был ученик в TOX? Я прочитал киркоматыгу и Eloquent Ruby, сейчас читаю Agile web dev with rails4 и смотрю на сурс, но понимаю хуже, чем руби код, времени много, ищу учителя, помогу чем смогу
TOX gravityslave (TOx id D1AF36B8F489756BCE81D019DC8D716C6E3C463475C483B64E9B96BC8662313AA980B88F7586 )
Только укажите, что вы с Ruby треда

Ответы>>804419>>805061

# OP 24 Июл, 20:18 #194 #804419

Чой-та вы без меня так активизировались. Кто остался без ответов на вопросы - ждите до завтра, я только-только из путешествия.

>>804126
Отписал.

Ответы>>804926

25 Июл, 12:42 #195 #804915

>>802530
Не заебало уже? Меня, например, воротит. Хотя помню раньше задротил в C++ и потом работал Java'мидлом. А потом дропнул всё. И вот опять...

25 Июл, 12:45 #196 #804920

>>802987
> А хочется же еще книги, блоги, дайджесты читать чтобы быть в теме, задрочить какую-то технологию новую, тот же ангуляр, но времени нету.
А девчонку красивую ты не хочешь в жопу трахнуть? Просто погулять в красивом месте, нет?

Ответы>>805053

25 Июл, 12:46 #197 #804922

>>803857
SUblime 2, Lubuntu. Пока всё устаривает.

25 Июл, 12:48 #198 #804926

>>804419
> я только-только из путешествия
Пили кулстори. Или ты на велике покатался, пофоткал загородный пейзаж на зеркалку?

Ответы>>805557

25 Июл, 13:09 #199 #804956

Недоволен ебаным Хартлом. Вот нахуя он про SCSS описывает? Блжад.

Ответы>>805003

25 Июл, 14:03 #200 #805003

>>804956
Книга рассчитана на тех, кто вообще только вкатывается в веб, как я понял. Вот тебе и SCSS.

мимо

Ответы>>805005

25 Июл, 14:08 #201 #805005

>>805003
Видимо да, но примеры очень неудачные. особенно там где рассказывается про основные структуры данных. Очень поверхностно. Буду дальше жевать, но очевидно что рекомендовать Хартла я не буду никому.

25 Июл, 14:45 #202 #805053

>>804920
А то ты не знаешь как приятно когда не надо себе и девушке отказывать в ништячках. А чем более крутым специалистом становишься, тем меньше ограничен финансово же.

Ответы>>805057

25 Июл, 14:46 #203 #805057

>>805053
Чем дальше, тем больше ограничен во времени и пространстве. Никто с тобой дела иметь не захочет, кроме таких же задротов-ноулайферов. Жи есть.

Ответы>>805062

sage 25 Июл, 14:50 #204 #805061

>>804126
eдваиваю реквест Agile web dev with Rails 5! Анончики с 28$ в кармане, поделитесь пожалуйста с новичками.

Ответы>>805066

25 Июл, 14:50 #205 #805062

>>805057
Я после 30 лет планирую поднять какой-то стартапчик и жить на средства с него, вопрос только в навыках и возможностях. Энивей всем приходится работать, а кодить хоть интереснее других работ первый год наверное

Ответы>>805068

25 Июл, 14:51 #206 #805066

>>805061
*удваиваю
самофикс

25 Июл, 14:52 #207 #805068

>>805062
Ну, удачи тогда.

25 Июл, 15:06 #208 #805089

Дошел до шестой главы Хартла и утомился пиздец. Действительно много лишней мути... Отвлекающей от основного.

Ответы>>805093

25 Июл, 15:07 #209 #805093

>>805089
Попробуй одновременно с чтением пилить что-то свое, и не совсем по шаблону. Будешь еще и задумываться, рикаминдую

Ответы>>805110

25 Июл, 15:32 #210 #805110

>>805093
Читаю для того, чтобы получить общее представление о фичах. А потом уже пиить буду что-то.

Ответы>>805134>>805251

25 Июл, 15:55 #211 #805134

Хей, а у ^ror^ ruby тжреда есть какая-то конфа? Было бы здорово куда-то закатиться, чтобы можно было обсасывать то-се и делиться опытом. Я бы с удовольствием пообсуждал что-то крутое из энтерпрайза, и в то же время продвинутые фичи по фронтенду, что скажете? Предлагаю дискорд какой-то, ну слак на худой конец >>805110
Фичи все дефолтные для MVC, только с плюшками. Весь обьем материала ты точно не запомнишь за забег.

Ответы>>805557

25 Июл, 17:37 #212 #805251

>>805110
Тогда понятно, чего ты так из-за SCSS злился. Это довольно странно читать такую книгу и параллельно не пробовать что-то. Там сплошные действия же, разве не возникает по ходу чтения вопросов "А чего так? А что, если я вот так сделаю, а не вот так?" ?

25 Июл, 18:27 #213 #805310

Есть девайс, наконфиганный чтобы формы логина/регистрации были в попапе а не на пейджах. Если вводить неправильное инфо, сайнин все равно редиректит на дефолтную страницу, есть идеи как сделать чтобы вместо этого выводилась ошибка в попапе?

Ответы>>805557

# OP 25 Июл, 22:32 #214 #805557

>>803180
Ну например
http://railscasts.com/episodes/382-tagging?view=asciicast
Задача-то элементарная - заполнить many-to-many из текстового поля формы. Я бы вообще без сторонних гемов делал и бек, и фронт красивый (как на архиваче, например)

>>803737
>И блять эта опция нормально работает со всеми адаптерами (:json, :json_api), но вообще не учитывается при адаптере :attributes (простой адаптер - as is). А именно он мне нужен.
Унаследуй собственный сериализатор от attributes и реализуй преобразование имён так же, как реализовано в других. Наверняка достаточно просто миксин какой-ниюудь подключить.

>>803796
>Как лучше сверстать список социалок фашными иконками, link_to '...' do fa_icon '...' end или не выебываться и обычными тегами?
А в чём разница? Фашные иконки норм. Будет что-то нужно кастомное - сделаешь собственный хелпер или партиал.

>>803817
>А насчет ? в названии полей, я просто не был уверен что пг с такими форматами названий работает, спс.
А ему и не надо. В БД поле хранится без знака вопроса на конце.

>>803887
>Нормас кстати писать запросы такого типа?
>Category.where(id: ArtistCategory.where(id: booking.artist_category_id).first.category_id).first.name
С точки зрения производительности - два запроса вместо одного, но пока приложение не нагружено это не критично.
С точки зрения качества кода - очень плохо. Хотя бы потому, что оно элементарно преобразуется к такому:
>booking.artist_categories.first.categories.first.name
Вообще, сомнительно, что ты берёшь первую категорию по произвольной сортировке (может у тебя там default_scope, но это тоже нехорошо). Реализуй это как has_one с order в скоупе

>>803909
>Спорно
Это стандарт кодирования на Руби
>Когда дохера таких полей набирается мне лично тяжело различать кто есть кто без is
Так то же самое же, только вместо трёхсимвольного префикса односимвольный суффикс.

>>804043
>Знающий анон, подскажи, как научиться нормально покрывать тестами приложение на рельсах? Мне не документация нужна, а именно понимание, с чего я должен начать, как всё сделать правильнее и т.д.
Книга Everyday Rails Testing. Купить на Learnpub или найти торрент, который гуглится очень легко.

>>804926
>Пили кулстори. Или ты на велике покатался, пофоткал загородный пейзаж на зеркалку?
Был в Крыму. Даже работал там через VPN.

>>805134
>Хей, а у ^ror^ ruby тжреда есть какая-то конфа? Было бы здорово куда-то закатиться, чтобы можно было обсасывать то-се и делиться опытом. Я бы с удовольствием пообсуждал что-то крутое из энтерпрайза, и в то же время продвинутые фичи по фронтенду, что скажете? Предлагаю дискорд какой-то, ну слак на худой конец
Подумаю. Наверное слак, но я открыт для предложений (только телеграм не пишите, плиз). До конца недели, надеюсь, сделаю.

>>805310
Тебе надо сгенерировать SessionsController:
>rails generate devise:controllers users -c=sessions
Я предпочитаю держать его в пространстве имён Users (по имени модели User).
Дальше переопределяешь метод #create, смотря исходный код оригинального метода:
https://github.com/plataformatec/devise/blob/master/app/controllers/devise/sessions_controller.rb#L15-L22
Судя по всему, надо изменить последнюю строку, убрав location.

# OP 25 Июл, 22:32 #214 #805557

>>803180
Ну например
http://railscasts.com/episodes/382-tagging?view=asciicast
Задача-то элементарная - заполнить many-to-many из текстового поля формы. Я бы вообще без сторонних гемов делал и бек, и фронт красивый (как на архиваче, например)

>>803737
>И блять эта опция нормально работает со всеми адаптерами (:json, :json_api), но вообще не учитывается при адаптере :attributes (простой адаптер - as is). А именно он мне нужен.
Унаследуй собственный сериализатор от attributes и реализуй преобразование имён так же, как реализовано в других. Наверняка достаточно просто миксин какой-ниюудь подключить.

>>803796
>Как лучше сверстать список социалок фашными иконками, link_to '...' do fa_icon '...' end или не выебываться и обычными тегами?
А в чём разница? Фашные иконки норм. Будет что-то нужно кастомное - сделаешь собственный хелпер или партиал.

>>803817
>А насчет ? в названии полей, я просто не был уверен что пг с такими форматами названий работает, спс.
А ему и не надо. В БД поле хранится без знака вопроса на конце.

>>803887
>Нормас кстати писать запросы такого типа?
>Category.where(id: ArtistCategory.where(id: booking.artist_category_id).first.category_id).first.name
С точки зрения производительности - два запроса вместо одного, но пока приложение не нагружено это не критично.
С точки зрения качества кода - очень плохо. Хотя бы потому, что оно элементарно преобразуется к такому:
>booking.artist_categories.first.categories.first.name
Вообще, сомнительно, что ты берёшь первую категорию по произвольной сортировке (может у тебя там default_scope, но это тоже нехорошо). Реализуй это как has_one с order в скоупе

>>803909
>Спорно
Это стандарт кодирования на Руби
>Когда дохера таких полей набирается мне лично тяжело различать кто есть кто без is
Так то же самое же, только вместо трёхсимвольного префикса односимвольный суффикс.

>>804043
>Знающий анон, подскажи, как научиться нормально покрывать тестами приложение на рельсах? Мне не документация нужна, а именно понимание, с чего я должен начать, как всё сделать правильнее и т.д.
Книга Everyday Rails Testing. Купить на Learnpub или найти торрент, который гуглится очень легко.

>>804926
>Пили кулстори. Или ты на велике покатался, пофоткал загородный пейзаж на зеркалку?
Был в Крыму. Даже работал там через VPN.

>>805134
>Хей, а у ^ror^ ruby тжреда есть какая-то конфа? Было бы здорово куда-то закатиться, чтобы можно было обсасывать то-се и делиться опытом. Я бы с удовольствием пообсуждал что-то крутое из энтерпрайза, и в то же время продвинутые фичи по фронтенду, что скажете? Предлагаю дискорд какой-то, ну слак на худой конец
Подумаю. Наверное слак, но я открыт для предложений (только телеграм не пишите, плиз). До конца недели, надеюсь, сделаю.

>>805310
Тебе надо сгенерировать SessionsController:
>rails generate devise:controllers users -c=sessions
Я предпочитаю держать его в пространстве имён Users (по имени модели User).
Дальше переопределяешь метод #create, смотря исходный код оригинального метода:
https://github.com/plataformatec/devise/blob/master/app/controllers/devise/sessions_controller.rb#L15-L22
Судя по всему, надо изменить последнюю строку, убрав location.

Показать весь текст
Ответы>>805592>>805593>>805692

25 Июл, 23:17 #215 #805592

>>805557
>Это стандарт кодирования на руби
Причем здесь руби? Это поля в БД в первую очередь, а стайлгайды всякие бывают.

25 Июл, 23:17 #216 #805593

>>805557
Спасибо.

26 Июл, 02:34 #217 #805692

>>805557
Короче дискорд мультиплатформа, можно четко конфигать, не требует установки и более-менее секьюрный. И спасибо за ответы, ща поебусь с мейлером и буду рефакторить будто мне за это доплатят

26 Июл, 08:39 #218 #805719

Сап.
Реквестирую линк на пример реализации корзины.

Ответы>>805751

26 Июл, 10:20 #219 #805751

>>805719
Тут есть что-то
https://www.sitepoint.com/build-online-store-rails/

26 Июл, 12:04 #220 #805819

Антуаны, а какую операционную систему вы используете для работы? Я вот для мака нищеёб, поэтому как всё быдло пользовался шиндовс. В принципе, руби там были юзабельны не считая уберуёбищной консоли Но везде постоянно вижу, что виндофаги не нужны. И вчера я решил обмазаться прыщами. И тут начался пиздец - ОШИБКА СТОП НОЛЬ НОЛЬ НОЛЬ. Это же пиздец, рельсы тянулись и ставились минут 40, в итоге - rails is not installed. RVM команды так и не распознаются, хотя каждый раз пишет, что проинсталированы успешно. Неужели руби на прыщах такой пиздец? Что делать? Денег на мак нету.

Ответы>>805821>>805826>>805845>>805932>>805977

26 Июл, 12:09 #221 #805821

>>805819
>Антуаны, а какую операционную систему вы используете для работы?
Debian
>И вчера я решил обмазаться прыщами.
Какими именно?
>И тут начался пиздец - ОШИБКА СТОП НОЛЬ НОЛЬ НОЛЬ
Ты на перфокартах что ли пишешь? Что это за хрень? Нормально изъясняйся.
>Что делать?
Описать проблему в треде и ждать ответа. И не шитпостить больше.

Ответы>>805849

26 Июл, 12:14 #222 #805826

>>805819
В десятой винде можно скачать подсистему Ubuntu. Серьезно, ни дуалбут, ни виртуалка не нужна. Пиздуй гуглить.
Потом настроишь рубимайн и будешь кайфовать.

26 Июл, 12:53 #223 #805845

>>805819
> RVM команды так и не распознаются, хотя каждый раз пишет, что проинсталированы успешно

echo "source $HOME/.rvm/scripts/rvm" >> ~/.bashrc

Ответы>>805854

135 Кб, 646x660

26 Июл, 13:04 #224 #805849

>>805821
>Какими именно?
Linux mint.
Какие ошибки?
Прикрепил в картинке. Причём, о ДОЛГОЙ установке рельсов на прыщах слышал раннее. На сперме всё установилось за пару минут. В итоге работает нихуя.

Ответы>>805852>>805898

26 Июл, 13:10 #225 #805852

>>805849
тебе надо в шелл настройки рвм окружения поствить
source /etc/profile.d/rvm.sh
rvm requirements

26 Июл, 13:12 #226 #805854

>>805845
Просто скрой его, это очередной даунёнок.

26 Июл, 14:14 #227 #805898

>>805849
Terminal -> menu "Edit" -> menu item "Profile preferences" -> tab "Command" -> check "Run command as login shell"

26 Июл, 15:00 #228 #805932

>>805819
Lubuntu.

Ответы>>805933

200 Кб, 1440x900

26 Июл, 15:01 #229 #805933

>>805932

Ответы>>805949

26 Июл, 15:21 #230 #805949

>>805933
Блин ну и ШГ радужное, включай 50 оттенков grayscale'а и hint slight.

Ответы>>805952>>805994

26 Июл, 15:24 #231 #805952

>>805949
>ШГ
???

26 Июл, 15:49 #232 #805969

>>795140
А вы ещё людей набираете?Могу я присоединиться?

Ответы>>806967

26 Июл, 15:58 #233 #805977

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

Ответы>>806004

26 Июл, 16:21 #234 #805994

>>805949
Понятно, тебе дрочить, а не ехать.

Ответы>>805996

26 Июл, 16:22 #235 #805996

>>805994
ШГ - шрифты говно?

Ответы>>806004

26 Июл, 16:34 #236 #806004

>>805977
Просто RVM дерьмо собачее как и пидор-пшек его написавший.
>>805977
Знаем мы таких пользунов линуксами, устанавливающих в вайне пол винды.
>>805996
Если точнее, то рендеринг шрифтов говно, сколько смотрел на разных экранах и нигде субпиксельное (радужное) сглаживание нигде хорошо не работает, НИГДЕ.
Ведь по задумке его вообще не должно быть видно, потому что это субпиксели мать их за ногу — должны быть только очень чоткие контуры букв.
Я уже не говорю про ужас и боль в хроме на винде.
Единственное место где субпиксель как-то сносно работает это MacOS, но и там не без косяков.

Ответы>>806012

26 Июл, 16:40 #237 #806012

>>806004
На шрифты дрочат только шизоиды.

Ответы>>806014

26 Июл, 16:41 #238 #806014

>>806012
В глаза долбится только быдло.

Ответы>>806024

26 Июл, 16:46 #239 #806024

>>806014
Так это ж ты долбишься в очко шрифтами. Единственный раз, когда я видел невыносимые шрифты, был под дебианом с кедами, вот там да. В остальных случаях всё нормально под всеми системами и не пизди, что не так, иначе все бы скулили, а не только такие избранные небыдлы-шизоиды как ты.

Ответы>>806116

26 Июл, 18:24 #240 #806116

>>806024
Наличие опции grayscale как бы намекает, Нормально под всеми системами? Это типа как в винде, либо пиксельное говно, либо радужная блевотина вокруг каждой буквы? Сначала ты со школы смотришь на виндовые шрифты, а потом тебе непривычна, НА МОЁМ МОНИТОРЕ ВСЁ ОТЛИЧНО, и прочие проявления стокгольмского синдрома вендоблядков.

Ответы>>806158

26 Июл, 18:29 #241 #806125

Эх, щас бы руби тред в линуксо-холивары превращать.

26 Июл, 18:43 #242 #806146

Можно ли отрефакторить этот цикл в DRY?
- flash.each do |key, value|
- case key
- when "error"
.bg-danger.flash
.container
= value
- when "notice"
.bg-info.flash
.container
= value
- when "success"
.bg-success.flash
.container
= value
- when "alert"
.bg-warning.flash
.container
= value

Ответы>>806157>>806167

26 Июл, 18:49 #243 #806157

>>806146
Интерполяцией может. Чтоб каждый раз не писать ".bg-...flash.container".
мимо

26 Июл, 18:50 #244 #806158

>>806116
Просто ухади.

26 Июл, 18:50 #245 #806159

Arch. проблем с рельсами никих не было. палю годный гайд https://gorails.com/setup/ubuntu/16.04

Ответы>>806172

26 Июл, 18:52 #246 #806163

Да у меня и на бубунту не было проблем с установкой, вы чего. Только уже в процессе работы бывали проблемы, но половина из них -- из-за отсутствия опыта.

26 Июл, 18:56 #247 #806167

>>806146
попробуй переопределить стили в ксс, тогда код будет типа
- flash.each do |key, value|
%div{class: key}
.container

Тогда хамл файл будет чистым, а что там в scss — вообще насрать, кек.

26 Июл, 18:58 #248 #806172

Деплоил рельсы на все. начиная от CentOS заканчивая убунтой. настроить бейсик рельсы с бд занимает мин 15. я хуй знаеть что можно не так сделать:)
>>806159 кун

Ответы>>806175

26 Июл, 19:02 #249 #806174

Можно начинать учиться по этому, разбираясь в линуксе и немного SQL, но абсолютно не зная руби? http://nnm-club.me/forum/viewtopic.php?t=1001841
Руби, конечно же, будет подтянут в дальнейшем под нужды рельс

Ответы>>806179

26 Июл, 19:02 #250 #806175

>>806172
Пердачую.

26 Июл, 19:02 #251 #806179

>>806174
Так с этого многие и начинали, кек.

Ответы>>806181

26 Июл, 19:03 #252 #806181

>>806179
Супер, огромное спасибо. Может, тогда и в шапку добавите?

Ответы>>806184

26 Июл, 19:06 #253 #806184

>>806181
Так вот же:
>https://www.railstutorial.org/

26 Июл, 20:35 #254 #806247

Скорее конфочка бы появилась, я некоторые вещи просто вообще не понимаю, а в войсе было бы не так стыдно спрашивать.
Есть два вопроса.
Первый - стоит мани гем, когда создавал модели все ок, в миграциях писал тип полей мани и создало по два поля (карренси и центс) а дальше что с ними делать? Как из формы например правильно сеттить? Доку я читал но чет не понял, честно.

Второе - киньте линк на реализацию отношений в рельсах, скоупы, это все. Интересует именно практическая реализация.

Ответы>>806250

26 Июл, 20:39 #255 #806250

>>806247
Так пилите конфочку. Помогу чем смогу.

Ответы>>806251

26 Июл, 20:39 #256 #806251

>>806250
В дискордыче ок было бы?

26 Июл, 20:53 #257 #806260

Конфа готова, подключайтесь в ruby-канал.
https://invite-me-to-2chpr.herokuapp.com/

Ответы>>806261>>806595

26 Июл, 20:54 #258 #806261

>>806260
Дай репо я переверстаю пож

27 Июл, 04:55 #259 #806595

>>806260
Расскажи, что это за сервис такой?

265 Кб, 1440x900

260 Кб, 1440x900

rails c 27 Июл, 15:31 #260 #806807

Как отключить лишний мусор в выводе rails console?

Ответы>>806815>>806827

27 Июл, 15:46 #261 #806815

>>806807
стак трейс довольно полезная вешь.

Ответы>>806822

27 Июл, 15:52 #262 #806822

>>806815
Да, но хотелось бы иметь возможность ограничить вывод.

27 Июл, 16:09 #263 #806827

>>806807

https://i.imgur.com/jfRpugp.png

Ответы>>806852

27 Июл, 17:19 #264 #806852

>>806827
Вот и я о том же. У меня слишком дохуя выводит всего. Надо разобраться с этим.

Ответы>>806856

27 Июл, 17:35 #265 #806856

>>806852
Если ты не понял, то я тебе посоветовал поиграться с pry вместо стандартной соснольки. Гем настроен не срать в логи уже из-под коробки + содержит в себе некоторые очевидные и неочень фишечки

https://i.imgur.com/O4uweZr

Ответы>>806859

27 Июл, 17:41 #266 #806859

>>806856
Не плоди сущности сверх необходимости. Думаю, что стандартная косоль тоже настраивается. Надо только покурить что-то.

Ответы>>806864>>806871>>806881

27 Июл, 17:57 #267 #806864

>>806859
Не трать время на ветряные мельницы. Надо просто поставить pry.

27 Июл, 18:07 #268 #806871

>>806859
Дефакто стандарт это и есть pry, везде где работал его использовали.

27 Июл, 18:24 #269 #806881

>>806859
Для меня тоже когда-то стало забавным открытием, что от чистой рельсы рожки да ножки принято использовать.

Практически все заменяется, практически всегда на это есть объективные причины.

Так что привыкай к достатончно объемным гемфайлам.

# OP 27 Июл, 20:25 #270 #806967

>>805969
Присоединяйся. Пиши в Tox 85FBA2F0CAEE460A5C1C445C550041BD0794B1D318FC34D00FBB7266326C1667F8DCC5665915 или в скайп krowpu

Ответы>>808238>>810098

# OP 27 Июл, 20:30 #271 #806970

Кстати, предлагаю считать Руби-канал в этой конфе официальной конфой этого треда
https://invite-me-to-2chpr.herokuapp.com/
Добавлю в следующую шапку

Ответы>>807096>>809311

27 Июл, 23:38 #272 #807096

>>806970
Ваша "оффициальная" конфа меня не приняла, так что идите нахуй. Два раза слал.

Ответы>>807188

# OP 28 Июл, 02:52 #273 #807188

>>807096
Всегда работало. Попробуй на другой емейл (10minutemail работает)

28 Июл, 17:01 #274 #807459

Можно ли и как сделать на рельсах личный блог без регистрации и смс? В том смысле, чтоб блог вообще не имел форм входа/регистрации, просто владелец блога постит себе да и всё, никаких юзеров и прочего.

Пример:
http://www.rubycoloredglasses.com/

Он просто в базу данных закидывает свои посты и всё? Или как? Можно ли такое же творить на хероку?

Ответы>>807470>>807471>>807474

28 Июл, 17:18 #275 #807470

>>807459
jekyll

Ответы>>807526

28 Июл, 17:19 #276 #807471

>>807459

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

Ответы>>807526

28 Июл, 17:21 #277 #807474

>>807459
> Можно ли такое же творить на хероку?

Я решал подобную задачу. Для хероку придется решить проблему отсутствия персистентности данных для файлов не включенных в репозитарий. То если у тебя есть хтмл файлики и описание к ним, описание можно хранить в postgresql, а вот с файликами (статьями) возникает проблема. Статьи ты очевидно не захочешь хранить в гите, ибо это некрасивое решение. Цель же научится программировать, да?

Проблема решается созданием амазон хранилища и переносом данных туда. Потом хранилище подключается через гем к твоему приложению. Ну или погугли плагины для хероку, я особо не вникал, но какие-то потенциально интересные решения видел.

После добавления статьи (файлика) в твое хранилище на амазоне, базу данных блога на хероку можно обновить через rake-таск, черещ терминал — это если хочешь чтобы все более-менее красиво было.

Ответы>>807526

28 Июл, 18:33 #278 #807526

>>807470
>>807471
>>807474
Спасибо!

28 Июл, 20:50 #279 #807647

Ребят, подскажите. Никогда раньше не имел дел с рельсами, выступающими в качестве апи. И вот сейчас есть следующий проект: приложение, изначально будет работать только по json api, но в будущем будет еще и отображение на нем же (апи останется). Собственно имею вопрос по поводу devise'а: как его с наименьшими костылями настроить для работы через json, и при этом оставить возможность параллельной работы в классическом варианте. И еще, имеет ли смысл использовать новую возможность наследования ActionController от ActionController::API, или потом придется слишком много перехуячивать, когда появится серверный рендеринг вьюх?

Ответы>>807952

34 Кб, 419x451

29 Июл, 01:32 #280 #807952

>>807647
devise_token_auth
Помимо обычно devise в routes добавляешь что-то в духе
namespace :api do
+ namespace :v1 do
+ # auth
+ mount_devise_token_auth_for 'User',
+ at: 'auth',
+ skip: [:omniauth_callbacks, :invitations],
+ controllers: {
+ sessions: 'api/v1/auth/sessions',
+ registrations: 'api/v1/auth/registrations',
+ passwords: 'api/v1/auth/passwords',
+ },
+ as: :user_registration do
+ get :cancel
+ end

> И еще, имеет ли смысл использовать новую возможность наследования ActionController от ActionController::API, или потом придется слишком много перехуячивать, когда появится серверный рендеринг вьюх?

Разные контроллеры должны отвечать за серверный рендеринг и за апи в любом случае

Ответы>>807978

29 Июл, 05:14 #281 #807978

>>807952
Спасибо, кажется то что надо. Использование devise_token_auth оставит же возможность парралельно использовать обычную аутентификацию? Если возможно, дай плиз ссылку на проект со скрина, или подобные, будет мне в большую помощь

Ответы>>807983

29 Июл, 06:05 #282 #807983

>>807978
>
Конечно можно, читай ридми внимательно.

https://habrahabr.ru/post/136461/

Я добавлял API к приложухе довольно поздно поэтому html контроллеры не неймспейсил. И так сойдет!

Ответы>>808262

29 Июл, 11:16 #283 #808090

Блять, nginx и unicorn работают на локалхосте, но на внешний IP не ловится. надо hosts настраивать чтоле?

Ответы>>808100

29 Июл, 11:36 #284 #808100

>>808090
-b 0.0.0.0

Ответы>>808115

29 Июл, 12:01 #285 #808115

>>808100
bundle exec unicorn -D <...> -b 0.0.0.0
так?

Ответы>>808141

29 Июл, 12:37 #286 #808141

>>808115
naverno ya s unicornom ne och. tebe nado bindint na 0.0.0.0 address

Ответы>>808150

29 Июл, 12:57 #287 #808150

>>808141
ты наверное не понял
Связка рельсы юникорн и нгинкс работают на локалхосте, отвечает на 80 порт. а вот как сделать так, чтобы еще и внешние соединения работали я хз(

Ответы>>808156

29 Июл, 13:06 #288 #808156

>>808150
бля , мне чтоли вручную порты пробрасывать?

29 Июл, 13:59 #289 #808192

Юникорн разве не питоновский инструмент?

Ответы>>808276

29 Июл, 14:07 #290 #808198

>>794342 (OP)

Подскажите нуфагу

Как правильно настроить почтовый сервер на отсылку поддверждения почты.

Сейчас просто использовал ящик на яндексе для отправки, через некоторое врем он просто не отсылает, т.к. подозревает спам.

Как правильно отсылать norepy^BlyANUSk((iokokoPUNCTUMcoC4om чтобы не считалось спамом и не попадало в папку спам

29 Июл, 14:59 #291 #808238

>>806967
Можно связаться ещё как-нибудь по-другому?По-емейлу?

Ответы>>808446

29 Июл, 15:17 #292 #808262

>>807983
Спасибо большое!
Может еще подскажешь хороший универсальный гем для реализации паттерна Form Object? (знаю гем reform, всем хорош, кроме того что для создания полиморфных вложенных форм, и для удаления связанных моделей через вложенные формы нужно городить костыли)

29 Июл, 15:28 #293 #808276

>>808192
Ну хз.
https://ru.wikipedia.org/wiki/Unicorn_(веб-сервер)

Ответы>>808294

29 Июл, 15:37 #294 #808294

>>808276
На питоне есть сервер gunicorn, который основан на рубишном юникорне как раз

# OP 29 Июл, 18:16 #295 #808446

>>808238
Ну свяжемся мы по мылу, а общаться как будем?

31 Июл, 00:18 #296 #809135

Анонасы, поясните за локализацию модулей в папке либ в рельсе. Есть код типа

module Yoba
class << self
def scan(params = {})
…
msg = 'yobamsgr'
raise StandardError, msg unless some_shit_predicate_happiness
end
end
end

Вопрос в том, куда убрать msg = 'yobamsg'. Для самой рельсы есть файлы-локали типа ru.yml, а вот рекомендаций по локализации lib/, чёт не вижу. Прямо в тело ебашить? Попахивает...

Ответы>>809183>>809338

31 Июл, 02:28 #297 #809183

>>809135
Так тебе убрать или локализировать? Ничего не понял, на всякий случай для локализации юзай гем i18n.

31 Июл, 12:33 #298 #809311

>>806970
нахуй нужна ваша ебаная конфа когда есть канал на фриноде?

# OP 31 Июл, 13:11 #299 #809338

>>809135
На локализацию вообще нет стандартов, насколько я знаю.

>Для самой рельсы есть файлы-локали типа ru.yml
Если туда пытаться писать локализацию хотя бы для небольшого приложения, то это будет неподдерживаемый кусок говна на пару тысяч строк. Я разбил директорию config/locales на папки с ресурсами, например config/locales/pages, config/locales/events, а в каждой папке уже файлы en.yml, ru.yml и т.д.

Так что для lib придумай что-нибудь сам. Главное следовать стандарту в своих проектах и документировать это как-то, остальное не важно.

Ответы>>809415

31 Июл, 14:41 #300 #809415

>>809338
понял, спасибо.

31 Июл, 18:18 #301 #809611

Аноны, помогите с тестами контроллеров, пожалуйста.
Суть такова: есть один контроллер, в нем есть методы index и show. Тест контроллера падает на методе show index проходит.
В ссылке ниже все нужные файлы. RSpec ругается так:

Failure/Error: get :show
ActionController::UrlGenerationError:
No route matches {:action=>"show", :controller=>"books"}

Почему ноу роут мэтчес? в роутах все нормально прописано, вручную проверял - контроллер корректно работает. ЧЯДНТ?

Файлы тут:
https://gist.github.com/Goodsprings/e9a085ea4f6a64092884fe64fd9f9333

Ответы>>809620

31 Июл, 18:29 #302 #809620

>>809611
get :show, id: 1, лолка. Это классика, это знать надо.

Ответы>>809631

31 Июл, 18:41 #303 #809631

>>809620
А, ну я не знал, файл сам сгенерировался, в РСпеке только разбираюсь. Спасиб

Ответы>>809634

31 Июл, 18:45 #304 #809634

>>809631
Только разбираюсь -- в смысле только начал учиться

01 Авг, 00:03 #305 #809895

Рельсаны, есть вопрос. Установил я spree (ну решил магазин делать) все вроде работает на локалке. Решил дизайн поменять на что-то более пригодное, залез на wrapbootstrap, выбрал шаблон, скачал а что дальше? Раньше когда делал всякие простенькие сайты на десяток страниц то подключал все прямо на месте, в assets/javascripts копировал скрипты а в assets/stylesheets стили соответственно, и вьюхи создавал и все прекрасно крутилось-вертелось. А как тут? Есть ли какой-нибудь простой способ сделать это в spree? Я прочитал что там deface ставится, и нужно через него переопределять стили, чтобы при обновлении spree все не дефолтнулось, но как я эти стили переопределить могу? Может есть какой-то how to по натягиванию шаблонов с использованием deface?

Ответы>>810172

20 Кб, 367x209

01 Авг, 01:24 #306 #809946

Ананасы, помогите говнокодеру.
Пишу рейк-таску, которая создаст базу данных, с которой буду работать. Суть такова: создается робот (это как юзер, не важно почему роботом называется, лол), который имеет два поля: имя и ссылку на аву его. На пике сам метод таски. ФФейкером создаю имена, им же ссылки. Всё это в двумерный массив, потом перебираю его, создаю роботов с именем и ссылкой. В итоге при запуске таски ругается на строку цикла сократил немного словом "ссылка":
NoMethodError: undefined method `each' for "ссылка":String

Интересно то, что такой способ вполне себе работает через обычную рубишную сосноль. В чем проблема-то, парни? Чего он each применяет к самому элементу? Втф?

п.с.: советы по логике таски приветствуются, так как понимаю, что сильно намудрил

С меня как всегда.

Ответы>>809950>>809964>>810079

34 Кб, 568x241

01 Авг, 01:28 #307 #809950

>>809946 - кун:
Вот так в консоли работает. Просто идеально.

Ответы>>809964

01 Авг, 01:43 #308 #809964

>>809946
>>809950
Вопрос решен, неправильно модель создал. Извините за шитпостинг.

01 Авг, 09:00 #309 #810066

Эт самое, народ, дело такое, хочу кому нибудь что нибудь помогать за так для опыта, не лежит душа к написанию бесполезной хуйни, но когда дело доходит до реальных задач просыпается вдохновение, может кому надо написать какие тесты или что то еще сделать, умею следующее:
1. Знаю что такое MVC в рельсах
2. Умею сделать devise.
3. Немного умею писать тесты rspec, capibara
4. Умею в twiter-bootstrap
5. Умею в отношения оне-ту-мани мани-ту-мани
6. Знаю что такое i18n и как это готовить
7. Полиморфизм
8. Гит в конце концов пул реквест там сделать

Местами могу подтупливать но быстренько найду в интернете решение, короче бесплатного помошника пост.
Контакты: tox 1D683412FD48A4B965579C47F814166081F109204CA27A171EF2AEA68A7472522F4B7DB7C305

Ответы>>810097>>812247

01 Авг, 09:14 #310 #810079

>>809946
Съеби-ка читать всё сначала. Уровень ниже макаки.

Ответы>>810142>>811281

01 Авг, 09:50 #311 #810097

>>810066
max.on.one

01 Авг, 10:02 #312 #810098

>>806967
Написал в тох и скайп, антуан ты где

Ответы>>812248

01 Авг, 11:39 #313 #810142

>>810079
>тред, где задают вопросы и учатся
>Съеби-ка читать всё сначала. Уровень ниже макаки.
Закрой тред и не возвращайся.

Ответы>>810184

01 Авг, 12:34 #314 #810172

>>809895
Ребят, мне то подскажите пожалуйста

Ответы>>810178

01 Авг, 12:48 #315 #810178

>>810172
Не работал с этим, обычно подключаю бутстрап и все, не заморачиваюсь. Смотрел его?

Ответы>>810223

01 Авг, 12:54 #316 #810184

>>810142
Такие вопросы отпадают после RTFM.

01 Авг, 14:01 #317 #810223

>>810178
Бутстрап то подключен, но весь фронтенд со всеми вьюхами спятан за deface'ом. В проекте то есть в views/ ничего нету.

Ответы>>810497

01 Авг, 14:08 #318 #810227

Анон, стоит задача переделать devise, для использования телефона вместо email, с подтверждением по смс и все такое. В некоторых модулях, таких как confirmable жестко закожено использование. Пока я вижу 2 варианта - переписать эти модули в своем коде (но нужны будут тесты), или форкнуть девайз и просто пройтись автозаменой email на phone, ну и изменить метод отправки письма. На какой стул сесть, или может есть другие варианты?

Ответы>>810420

01 Авг, 18:58 #319 #810420

>>810227
Пока сделал так:
переопределил метод send_devise_notification, чтобы посылал смски вместо писем, переопределил в инициалайзере метод friendly_token, чтобы он возвращал короткую строку с кодом, пригодную для ручного ввода, переопределил ключ config.reset_password_keys на поле телефона. Для модуля восстановления пароля этого оказалось достаточно.
Для модуля подтверждения аккаунта так же переопределил config.confirmation_keys на телефон, но кроме того - отключил в модели юзера модуль :confirmable, и подключил свой концерн, который дублирует девайзовский модуль Confirmable с точностью до gsub(/email/, 'phone'). Поле unconfirmed_email в бд тоже соответственно теперь unconfirmed_phone. И, так как после отключения :confirmable девайз больше не мапит роуты для конфирмаций - небольшой хак для восстановления:
devise_scope :user do
scope '/users', module: :devise, as: :user do
resource :confirmation, only: [:show, :new, :create]
end
end
Собственно, осталась проблема - мой переделанный модуль Confirmable хоть и повторяет девайзовский, но в идеале для него нужны тесты, на случай обновлений девайза. Скопировать в репозитория девайза не могу - там используется другой гем для тестирования. Как вариант можно зафиксировать версию девайза и задокументировать этот хак. Что подскажете?

Ответы>>810481>>810917

01 Авг, 19:43 #320 #810481

>>810420
придумал еще такой вариант, в файл концерна поместить вместо скопированного кода из девайза, вот такой хак:
code = Pathname.new(`gem which devise`.chomp).dirname.join('devise/models/confirmable.rb').read
eval(code.gsub(/.(module Confirmable.+end).end.*end/m, '\1').gsub(/email/, 'phone'))
Что скажете про этот костыль?

Ответы>>810482

01 Авг, 19:44 #321 #810482

>>810481
бля, некоторые метасимволы парсер съел, но я думаю суть понятна

01 Авг, 20:14 #322 #810497

>>810223
Сегодня, точнее позавчера начал разбираться с bootswatch. Позавчера все сделал, проверил — работало. Сегодня делаю новую темку, уже нихрена не работает, ни старый стиль, ни новый. Пробую гем подлючить, там там ошибка возникает, причем древняя еще начала года. Гребанный фронт-енд, гребаный бутстрап, предполагается что все просто должно быть, а на деле хуита какая-то рандомная. И да простите накипело, уже второй день разбираюсь в природе такого поведения бустрапа и тем для него. А мог бы писать няшненький бак-енд.

Мимо второй анон.

Ответы>>810505

01 Авг, 20:24 #323 #810505

>>810497

>Гребанный фронт-енд, гребаный бутстрап, предполагается что все просто должно быть, а на деле хуита какая-то рандомная.

Как же я тебя понимаю. Постоянно такие мысли крутятся в голове стоит начать что-то делать. Запилить нормальный фронт - задача оказывается в разы более трудоемкая чем что-либо. Косяк на косяке и косяком погоняет блядь.

Ответы>>810509

01 Авг, 20:31 #324 #810509

>>810505
ну да, Кнопочки рамочкой выделяются? Погугли Мань, это причуда Файрфокса, нужно костыль вставить.

Страница выглядит криво? Так, в разных браузерах, для каких-то штучек браузеры сами определяют дефолтные стили… Необходимость все более менее подгонять… Скажите, что у меня жопа горит, и будете правы. :(

Ответы>>810515

01 Авг, 20:39 #325 #810515

>>810509
Да дело не в кнопочках с рамочкой (я в хроме вообще) а в том, что вся разметка по пизде ползет при любом чихе в сторону верстки. А если учесть еще что на каждую технологию существует по несколько фреймворков то вообще голова кругом идет. А еще и разные препроцессоры в которых разбираться нужно, ну пиздец в общем.

Я тоже хочу пилить backend и чтобы жопа не горела, но приходится заниматься всем сразу охуевая от происходящего, ибо платят за все сразу.

02 Авг, 10:29 #326 #810917

>>810420
Гугли "devise mobile authentication"

Вообще, если какой вопрос возникает, всегда сначала гугли. Раби тред создан для срачей, а не для взаимопомощи. Новички может и будут задавать тут вопрос, но спустя пару месяцев понимаешь, что на стековерфлоу есть ответы на любые интересующие тебя вопросы

Ответы>>810922>>811265

02 Авг, 10:44 #327 #810922

>>810917
> стековерфлоу

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

Нет, спасибо, ненадо таких ответов.

Ответы>>811017

02 Авг, 12:53 #328 #811017

>>810922
Если ты бездумно внемлешь советам, а не используешь их пищу для ума, я могу тебе и тут насоветовать.

954 Кб, 1440x810

02 Авг, 14:17 #329 #811115

Не люблю когда в сабах помесь яваскрипта с руби и в конце незакрытая точка!

37 Кб, 400x518

02 Авг, 17:56 #330 #811265

>>810917
>Раби

02 Авг, 18:15 #331 #811281

>>810079
хуесос, зочем ты вообще что-то советуешь

Ответы>>811331

02 Авг, 19:00 #332 #811331

>>811281
Я чуть не в каждом треде полезные советы даю, но дегенератов не способных открыть официальный гайд - не терплю.

Ответы>>811469

02 Авг, 21:15 #333 #811469

>>811331
Ну так не отвечай, хуле. dhh в треде, все в бункер.

# OP 03 Авг, 19:13 #334 #812247

>>810066
Тебе написать? Или max.on.one - это ты?

Ответы>>820436

# OP 03 Авг, 19:14 #335 #812248

>>810098
С тобой я связался? Всех проверяю щас

Ответы>>820435

03 Авг, 21:56 #336 #812378

Rлепаю код на Sinatra по книжке Jum up Sinatra(2013). Сделал деплой на хероку, и все бы ничего, да вот настроить мэйлер под продакшн не могу. В книге написано следующее
configure :production do
DataMapper.setup(:default, ENV['DATABASE_URL'])
set :email_address => 'smtp.sendgrid.net',
:email_user_name => ENV['SENDGRID_USERNAME'],
:email_password => ENV['SENDGRID_PASSWORD'],
:email_domain => 'heroku.com'
end
но это говно не работает. Нагуглил вот такое
configure :production do
DataMapper.setup(:default, ENV['DATABASE_URL'])
set :email_address => 'smtp.sendgrid.net',
:email_user_name => ENV['SENDGRID_USERNAME'],
:email_password => ENV['SENDGRID_PASSWORD'],
:email_domain => 'heroku.com'
end
но при отправке выдает INTERNAL SERVER ERROR.ЧЯДНТ?

Ответы>>812419

156 Кб, 602x802

Ruby 03 Авг, 22:23 #337 #812404

Зачем нужен руби? Кому он нужен? Что в нем особого? Есть ли на нем фриланс? Стоит ли его учить как первый язык?

Ньюфаг, который ищет свой язык

Ответы>>812436

03 Авг, 22:35 #338 #812419

>>812378
второй нагугленный код воТ
Pony.options = {
:from => "[email-masked]",
:body => params[:message],
:via => :smtp,
:via_options => {
:address => 'smtp.sendgrid.net',
:port => '587',
:domain => 'heroku.com',
:user_name => ENV['SENDGRID_USERNAME'],
:password => ENV['SENDGRID_PASSWORD'],
:authentication => :plain,
:enable_starttls_auto => true
},
}

Ответы>>812426

03 Авг, 22:45 #339 #812426

>>812419
> INTERNAL SERVER ERROR
> SERVER ERROR
> SERVER

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

…

И действительно, 1 секунда гугла и

https://devcenter.heroku.com/articles/smtp

Видишь анонас, все просто, нужно лишь чуть-чуть подумать.

Ответы>>812439

# OP 03 Авг, 22:51 #340 #812436

>>812404
>Зачем нужен руби?
Писать веб, в основном
>Кому он нужен?
В России в основном фрилансерам и тем, кто работает удалённо (это разные вещи немного), хотя есть локальные вакансии, но их мало. Английский must have
>Что в нем особого?
На мой взгляд, лучший ЯП из линейки популярных динамически типизированных Python/JS/PHP благодаря строгой типизации и лаконичному синтаксису
>Есть ли на нем фриланс?
Да, http://rubyjobs.ru и https://upwork.com
>Стоит ли его учить как первый язык?
Мое имхо, что первым языком стоит учить Си. Но есть success-stories и на Руби. Только столкнёшься с недостатком обучающих материалов в сравнении с тем же питоном (в частности, упустишь алгоритмы, структуры данных), зато сразу вкатишься в веб.

То, что в шапке, в основном для уже знающих программирование. Надеюсь кто-то посоветует что-то для новичков. Вот это вроде норм: https://www.youtube.com/channel/UCDPdTky4sQtQEwOLAe5v-NA

Ответы>>812441>>812490>>813262

# OP 03 Авг, 22:53 #341 #812439

>>812426
> INTERNAL SERVER ERROR
>Есть подозрение, что проблема в хероку.
Эта ошибка так же происходит при непойманном исключении в рельсах, например.

03 Авг, 22:54 #342 #812441

>>812436
> строгой типизации

кек, но ведь люди пишут свои костыли на валидацию гетерогенных массивов именно потому что строгой типизации нету в руби.

Ответы>>812448

# OP 03 Авг, 22:59 #343 #812448

>>812441
>гетерогенных массивов
Ты в любом случае помещаешь в массив элементы, имеющие одинаковый интерфейс, даже будь то Object#is_a? Считаешь неправильной проверку типов в рантайме - не делай так
>строгой типизации нету в руби
Покажешь пример неявного приведения типов в руби - поверю
Integer == Float отметаем, потому что 1) есть также .eql?, который строгий 2) Флоат всё равно не стоит сравнивать с чем-то из-за неточности вычислений с плавающей точкой

Ответы>>812616

03 Авг, 23:26 #344 #812490

>>812436
>строгой типизации
А пацаны и не знали

Ответы>>812530

04 Авг, 00:06 #345 #812530

>>812490
Путаешь слабую и динамическую типизацию

149 Кб, 724x1024

04 Авг, 02:09 #346 #812609

Делаю задачки на одном сайте и застрял, помогите!
Напишите калькулятор, реализующий работу с операторами +, –, , /, и %. Он должeн считывать стрoки из вхoдного пoтoка дo тeх пoр пoка нe встрeтит слoвo 'end'. Каждая стрoка содeржит два числа с oператором между ними. Числа и оператoры в стрoке раздeлeны пробeлами. Стрoки будут содeржать коррeктные данныe. По каждой опeрации отдельной строкой выводится рeзультат. Если опeрация с плавающей точкой, то с точностью до 3 знака пoсле запятoй.

В качестве входных данных
2 + 3
4.1 + 8.2
5 - 6
5.241 - 2.2
2 5
3.1 2
6 -7
7 / 3
-7 / 3
7 / -3
7.0 / 3
2 / 0.0
-2.0 / 0
0.0 / 0.0
7 % 3
-7 % 3
7 % -3

На выходе
5
12.3
-1
3.041
10
6.2
-42
2
-3
-3
2.333
Infinity
-Infinity
NaN
1
2
-2

149 Кб, 724x1024

04 Авг, 02:09 #346 #812609

Делаю задачки на одном сайте и застрял, помогите!
Напишите калькулятор, реализующий работу с операторами +, –, , /, и %. Он должeн считывать стрoки из вхoдного пoтoка дo тeх пoр пoка нe встрeтит слoвo 'end'. Каждая стрoка содeржит два числа с oператором между ними. Числа и оператoры в стрoке раздeлeны пробeлами. Стрoки будут содeржать коррeктные данныe. По каждой опeрации отдельной строкой выводится рeзультат. Если опeрация с плавающей точкой, то с точностью до 3 знака пoсле запятoй.

В качестве входных данных
2 + 3
4.1 + 8.2
5 - 6
5.241 - 2.2
2 5
3.1 2
6 -7
7 / 3
-7 / 3
7 / -3
7.0 / 3
2 / 0.0
-2.0 / 0
0.0 / 0.0
7 % 3
-7 % 3
7 % -3

На выходе
5
12.3
-1
3.041
10
6.2
-42
2
-3
-3
2.333
Infinity
-Infinity
NaN
1
2
-2

Показать весь текст
Ответы>>812619

3 Кб, 389x380

205 Кб, 811x1172

04 Авг, 02:18 #347 #812614

Самостоятельно только вот получилось, но в итоге получаются флоат с точкой, а точку надо убрать! Если убрать просто сравнивая с num.round, то проблемы с инфинити.
result = []
while (str = gets.chomp) != "end"
a = str.split(' ')
case a[1]
when "+"
y = a[0].to_f + a[2].to_f
when "-"
y = a[0].to_f - a[2].to_f
when ""
y = a[0].to_f a[2].to_f
when "/"
y = a[0].to_f / a[2].to_f
when "%"
y = a[0].to_f % a[2].to_f
end
result << y.round(3)
end
result.each { |t| puts t}

Ответы>>812619

04 Авг, 02:26 #348 #812616

>>812448
> Ты в любом случае помещаешь в массив элементы, имеющие одинаковый интерфейс, даже будь то Object#is_a? Считаешь неправильной проверку типов в рантайме - не делай так

Просто в данном конкретном случае в руби нестандартное определение массива. вот Вирт в своих книжках про структуры данных особенно подчеркивает, мол массив — гомогенная структура данных. Рубистам похер, гетерогенные массивы и норм. Скажем я могу предствавить себе ситуацию, когда в руби-массив попадет nil, т.е. он станет разряженным (например, из-за хитрой ошибки). И потом где-то глубоко в коде начинают происходить Анно-Малии.

Т.е. нужно как минимум знать о такой херне, а еще лучше проверять массивы на однородность, хотя это себе занятие, особенно с учетом того что так-то для подобного есть ко-компилятор, который _умеет в строгие типы_. Только почему-то забыли обучить ко-комплиятор быть построже с таким примитивом, как массивы.

> Покажешь пример неявного приведения типов в руби

Скажем так, иногда в рельсе иногда при вызове методов приходится явно указывать тип данных, потому что ко-компилятор руби не может не может понять чего мы хотим:

def method(*yoba, a)
puts yoba
end

method( 1,2,3, b: 5 )

Тут без задания квадратных скобочек все параметры будут сведены в массив, хотя очевидно нам нужно другое

method([1,2,3], b: 5 )

И тогда будет все кошерно, т.е. — первый аргумент массив, а второй — отдельно. Отсюда кстати забавная, костыльная практика по стилю языка, когда нам рекомендуют соостветствовать определенному порядку при объявлении переменных для метода. Жаль только не всегда соблюдают и иногда приходится лезть в документацию, чтобы понять где же ты забыл эти гребанные скобачки. Вот такое вот явное-неявное приведение типов.

Ответы>>812623

# OP 04 Авг, 02:30 #349 #812619

>>812609
>>812614
http://ideone.com/YaoVXs

>в итоге получаются флоат с точкой, а точку надо убрать
number.is_a?(Float)

04 Авг, 02:33 #350 #812620

>>794666
Добрый ОП, если используешь Телегу - постучи на @neekoso

Вроде и понимаю основы, но бывает туплю. Прошариваюсь быстро

Ответы>>812624

# OP 04 Авг, 02:41 #351 #812623

>>812616
>в руби нестандартное определение массива
>массив — гомогенная структура данных
>Рубистам похер, гетерогенные массивы и норм
Массив объектов типа BaseObject. Никакой гетерогенности

>Только почему-то забыли обучить ко-комплиятор быть построже с таким примитивом, как массивы.
Не понимаю. Руби - динамически типизированный ЯП. Тут нет статической проверки типов. Вроде как будет опционально в 3 версии

>method(1,2,3, b: 5)
>Тут без задания квадратных скобочек все параметры будут сведены в массив, хотя очевидно нам нужно другое
>method([1,2,3], b: 5)
Как это связано с типами или с компиляцией? Это вообще относится к синтаксису. Аргументы с ключевым словом в любом случае пойдут в хеш последним аргументом.

И твой пример неверен. И то и другое корректно. Зависит от того, какого типа элементы массива тредует функция

>Отсюда кстати забавная, костыльная практика по стилю языка, когда нам рекомендуют соостветствовать определенному порядку при объявлении переменных для метода.
Нет ничего подобного

Короче, ты, судя по всему, не разбираешься ни в теории языков программирования, ни в самом Руби. Путаешься в базовых определениях (типы и синтаксис).

Ответы>>812650>>812651

# OP 04 Авг, 02:41 #352 #812624

>>812620
Телегу не использую.

Ответы>>812932

04 Авг, 04:24 #353 #812650

>>812623
Причем там синтаксис, наркоман. Он показывает, что в некоторых случаях ты всё равно вынужден явно указывать тип, звездочкой ли или скобками.

Ответы>>813001

04 Авг, 04:30 #354 #812651

>>812623

> Массив объектов типа BaseObject. Никакой гетерогенности

Частным случаем не докажешь наличие свойства , зато его легко опровернуть:

puts "Ruby".chars << nil <<(1..10)

И вот уже в массиве 6 объектов с разными интерфейсами.

> И твой пример неверен. И то и другое корректно

Вообще я там облажался, цель была показать что тройка может бегать:

def method(*yoba, a)
puts yoba # => 1, 2
end
method 1,2, [3, b:5]

И тем не менее, раз этот пример ненаглядно демострирует неявное преобразование, то вот другой:

a,b,c = ['kek',2,:e,4]
puts a # => kek
puts c # => e

Переменные b и с вообще не должны быть инициализированы, но как видишь после присвоения массив куда-то пропадает, а переменные принимают значения его элементов.

> рекомендуют соостветствовать определенному порядку при объявлении переменных
> Нет ничего подобного

> Define optional arguments at the end of the list of arguments. Ruby has some unexpected results when calling methods that have optional arguments at the front of the list.

что-то подобное все жи есть.

04 Авг, 04:30 #354 #812651

>>812623

> Массив объектов типа BaseObject. Никакой гетерогенности

Частным случаем не докажешь наличие свойства , зато его легко опровернуть:

puts "Ruby".chars << nil <<(1..10)

И вот уже в массиве 6 объектов с разными интерфейсами.

> И твой пример неверен. И то и другое корректно

Вообще я там облажался, цель была показать что тройка может бегать:

def method(*yoba, a)
puts yoba # => 1, 2
end
method 1,2, [3, b:5]

И тем не менее, раз этот пример ненаглядно демострирует неявное преобразование, то вот другой:

a,b,c = ['kek',2,:e,4]
puts a # => kek
puts c # => e

Переменные b и с вообще не должны быть инициализированы, но как видишь после присвоения массив куда-то пропадает, а переменные принимают значения его элементов.

> рекомендуют соостветствовать определенному порядку при объявлении переменных
> Нет ничего подобного

> Define optional arguments at the end of the list of arguments. Ruby has some unexpected results when calling methods that have optional arguments at the front of the list.

что-то подобное все жи есть.

Показать весь текст
Ответы>>813001

04 Авг, 14:39 #355 #812932

>>812624
Тогда вот мой Tox.

6CE4F21717B3E5D4411A6D7D294224FCC63391346D3DB3AC74A0D603965BB632072FB11FF021

Ответы>>813002

04 Авг, 14:47 #356 #812941

Привет, писал в тред ньюфагов, ни один из ответов не был по делу. Напишу сюда. Использую Руби. еще бы

Имеется декартова система координат и пять точек на ней.

Цель движется по прямой последовательно от первой точки к пятой.
Скорость движения изменяется с каждой пройденной точкой.

Собственно, точки имеют формат (х, у, v), где х и у - это координаты, а v - скорость, с которой точка будет двигаться дальше.

Решил делать это через векторы. Для начала, я нахожу длинну вектора от одной точки к другой, затем орт(далее d) и получаю приблизительно такую формулу на каждый вектор:

Координаты моей точки = t v d + координаты первой точки.

Таким образом я получаю координаты точки через t времени при v скорости

НО

Это работает только для одного отрезка, а как мне продолжить подобное движение в рамках нескольких отрезков?

Допустим, векторы - это массивы (на самом деле, использую класс Vector в руби, но он подобен массивам и отличается только простотой реализации векторных функций). Я помещаю все векторы в один массив и могу проходить по нему через обычный foreach, используя while (координаты точки < координатов финальной точки на данном отрезке).

Проблема в том, что я не знаю, как мне правильно выделять по две точки(начальная и конечная) при каждой итерации массива.

Двачик, спаси :с

Ответы>>812974

04 Авг, 15:27 #357 #812974

>>812941
> Проблема в том, что я не знаю, как мне правильно выделять по две точки(начальная и конечная) при каждой итерации массива.

http://pastebin.com/0e3dNPr2

Обращение к начальной точке — vector[1], и к конечной vector[-1]

# OP 04 Авг, 15:55 #358 #813001

>>812650
>Причем там синтаксис, наркоман. Он показывает, что в некоторых случаях ты всё равно вынужден явно указывать тип, звездочкой ли или скобками.
Это не тип. Это синтаксическая конструкция. В динамически типизированных ЯП нет указания типов.

>>812651
>Частным случаем не докажешь наличие свойства , зато его легко опровернуть:
>puts "Ruby".chars << nil <<(1..10)
>И вот уже в массиве 6 объектов с разными интерфейсами.
Все они имеют интерфейс Object. Учи ООП.

>Переменные b и с вообще не должны быть инициализированы, но как видишь после присвоения массив куда-то пропадает, а переменные принимают значения его элементов.
Должны быть. В JS это называется restructuring. Как называется в программировании в целом не помню.
Да, не очень хорошо то, что необязательно перед массивом явно указывать звёздочку. Но это опять же придирка к синтаксису, а не к типам, и уж никак не преобразование типов.

>Define optional arguments at the end of the list of arguments. Ruby has some unexpected results when calling methods that have optional arguments at the front of the list.
Большинство ЯП вообще не дают указывать опциональные аргументы иначе как в конце списка. В Руби идеология - дай программисту возможность, пусть сам решает, стоит ей пользоваться или нет. Считаешь неправильным - не пользуйся. Напиши cop для RuboCop (а может уже есть такой), который будет проверять это статически.

Ответы>>813051>>813076

# OP 04 Авг, 15:55 #359 #813002

>>812932
Написал. Скайп у меня тоже есть, если что (krowpu)

Ответы>>814474

04 Авг, 15:58 #360 #813005

Посоны, как в devise добавить новый контроллер?
Т.е. не заменить, например registrationcontroller на own_registra...ller,
а написать свой own_shit < DeviseController и подключить к devise?

Ответы>>813127>>813132

04 Авг, 16:42 #361 #813051

>>813001

> Все они имеют интерфейс Object. Учи ООП.

Если в массив можно записать разные типы данных, то он гетерогенный. Наличие общего предка не играет никакой роли, а вот разное положение в иерархии классов делает очевидным присутствие отличающихся интерфейсов, из чего и следует определение гетерогенности.

> Но это опять же придирка к синтаксису

У тебя все придирка к синтаксису или ИСКЛЮЧЕНИЕ.

Очевидно неявное приведение integer к bignum для тебя будет таким же очередным исключением.

> В Руби идеология - дай программисту возможность, пусть сам решает, стоит ей пользоваться или нет.

Вот я и говорю, приходится костыли лепить и практиками обмазываться, чтобы компилятор мог разобраться что же за тип передал программист в метод. Прекрасная сильная типизация.

Ответы>>813121

04 Авг, 17:03 #362 #813076

>>813001
>Это не тип. Это синтаксическая конструкция.
А лучше бы тип, потому что смысл именно такой. Передача блока туда же.

>В Руби идеология - дай программисту возможность, пусть сам решает, стоит ей пользоваться или нет.
Но только если дело не касается тредов - надо защитить программиста, чтоб ничего себе не отстрелил!

Олсо, не защищай руби как упрямый баран, лучше вникни в суть и осознай: он далеко не идеален, порой даже там, где по сути вопросов не должно возникать. Не стоит этого отрицать.

Ответы>>813121

# OP 04 Авг, 17:58 #363 #813121

>>813076
>А лучше бы тип, потому что смысл именно такой. Передача блока туда же.
Я лишь говорю, что руби - динамически типизированный язык, и не надо приплетать сюда типы.

>Но только если дело не касается тредов - надо защитить программиста, чтоб ничего себе не отстрелил!
Ты про Global Interpreter Lock? От него избавляться будут. В остальном это просто нативные треды.

>не защищай руби как упрямый баран, лучше вникни в суть и осознай: он далеко не идеален, порой даже там, где по сути вопросов не должно возникать. Не стоит этого отрицать.
Это ты как баран пытаешься приплетать типы в динамически типизированный язык. Я сам считаю, что статическая типизация лучше. Но раз её нет (пока), не надо выдумывать несуществующие неявные преобразования типов.

>>813051
>Наличие общего предка не играет никакой роли, а вот разное положение в иерархии классов делает очевидным присутствие отличающихся интерфейсов, из чего и следует определение гетерогенности.
Как я уже сказал, ты не знаешь ООП. Общий интерфейс всё равно что один тип.

>Очевидно неявное приведение integer к bignum для тебя будет таким же очередным исключением.
Нет тут неявного приведения. Bignum и Fixnum - это детали реализации. Ты вообще почти никогда не должен от них зависеть. И да, оба наследуют Integer, так что это никак не приведения типов.

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

Короче, хватит шитпостить, прочитайте по компиляторам книгу хотя бы.

Ответы>>813161

04 Авг, 18:02 #364 #813127

>>813005
Посоны, хелпаните. Как девайсу прикрутить еще три контроллера?

Ответы>>813132

# OP 04 Авг, 18:05 #365 #813132

>>813005
>>813127
>Посоны, как в devise добавить новый контроллер?
# config/routes.rb
devise_scope :user do
get '/my_route' => 'my_controller#action', as: my_action_name
end

Ответы>>813136

04 Авг, 18:08 #366 #813136

>>813132
Это каждый экш контроллера прописывать чтоле? А сразу все нельзя?

Ответы>>813139

# OP 04 Авг, 18:08 #367 #813139

>>813136
resources в помощь

Ответы>>813140

04 Авг, 18:09 #368 #813140

>>813139
Пробовал не помогло.

Ответы>>813142

# OP 04 Авг, 18:10 #369 #813142

>>813140
Тогда объясни, что тебе надо

Ответы>>813144

04 Авг, 18:13 #370 #813144

>>813142
Короче, есть в девайсе восстановление пароля через отправку письма на почту.
Я запилил отключение аккаунта с помощью soft delete https://github.com/plataformatec/devise/wiki/How-to:-Soft-delete-a-user-when-user-deletes-account
Теперь я хочу сделать так, чтобы можно было восстанавливать доступ к аккаунту такой же отправкой письма на почту. А как это сделать я сообразить не могу. я только учусь, пилю учебный проектик

Ответы>>813151

# OP 04 Авг, 18:16 #371 #813151

>>813144
Больше всего похоже на ConfirmationsController https://github.com/plataformatec/devise/blob/master/app/controllers/devise/confirmations_controller.rb
resources внутри devise_scope вроде как должны работать, но если вдруг нет, то прописывай action'ы вручную

Ответы>>813155

04 Авг, 18:19 #372 #813155

>>813151
Спасибо. Тоже подумал заново подтверждение почты высылать и сбрасывать флаг.
а с ресурсами мог и накосячить

04 Авг, 18:24 #373 #813161

>>813121

> Как я уже сказал, ты не знаешь ООП. Общий интерфейс всё равно что один тип.

Тип данных — класс данных, характеризуемый членами класса и операциями, которые могут быть к ним применены (ISO/IEC/IEEE 24765-2010)

Тип данных — категоризация абстрактного множества возможных значений, характеристик и набор операций для некоторого атрибута (IEEE Std 1320.2-1998)

Тип данных — категоризация аргументов операций над значениями, как правило, охватывающая как поведение, так и представление (ISO/IEC 19500-2:2003)

И причем здесь интерфейс родительского класса? Если объект вследствии полиформизма изменяет свой домен, то это очевидно другой тип данных, как следует из определений выше. А ты что-то выдумываешь свое.

Короче говоря, либо приводи свое определение типов данных со ссылкой на источник, либо действительно просто закончим этот разговоор.

Ответы>>813166

# OP 04 Авг, 18:28 #374 #813166

>>813161
>И причем здесь интерфейс родительского класса? Если объект вследствии полиформизма изменяет свой домен, то это очевидно другой тип данных, как следует из определений выше. А ты что-то выдумываешь свое.
Про математическое множество и понятие подмножества слышал? Bignum и Fixnum - подмножества Integer. Если массив содержит Bignum и Fixnum, то можно считать это гомогенным массивом, содержащим элементы из множества Integer. мы будем использовать только методы этих объектов, общие для ВСЕХ элементов множества Integer, т.е. для нас они все одного типа.

Ответы>>813171

04 Авг, 18:34 #375 #813171

>>813166
> можно считать это гомогенным массивом, содержащим элементы из множества Integer

Нет нельзя, множество операций не симметрично для integer и bignum, То есть integer можео поделить на float и получить остаток, тогда как bignum при делении будет отвечать Infinity. Таким образом два объекта при проведении одной и той же операции ведут себя различно. Если кошка мяукает, а собака гавкает, то это два разных объекта, а не один и тот же.

Ответы>>813179

192 Кб, 1366x768

04 Авг, 18:39 #376 #813179

>>813171
>То есть integer можео поделить на float и получить остаток, тогда как bignum при делении будет отвечать Infinity
Не совсем понял, что ты имел ввиду, но ты не прав, смотри скриншот

>множество операций не симметрично для integer и bignum
А теперь читай внимательно то, что я написал ранее:
>мы будем использовать только методы этих объектов, общие для ВСЕХ элементов множества Integer, т.е. для нас они все одного типа.
Да, если ты используешь операцию, которая есть у Bignum, но нет у Fixnum (синтетический пример), то массив становится гетерогенным, а код некорректным. Это недостаток всех языков с динамической типизацией. Но в корректном коде (который не выкидывает исключения ни на каких входныхданных) массив всегда гомогенен

841 Кб, 943x579

04 Авг, 18:47 #377 #813192

> Не совсем понял, что ты имел ввиду, но ты не прав, смотри скриншот

попробуй число побольше.

> Но в корректном коде (который не выкидывает исключения ни на каких входныхданных) массив всегда гомогенен

Только за этой корректностью следит программист, поскольку строгой типизации для элементов массива в руби нету.

Ответы>>813200

# OP 04 Авг, 18:52 #378 #813200

>>813192
Пример есть. Теперь согласен. Можно сказать, что при операции между Float и Integer последний неявно преобразуется в Float. Видимо, я игнорировал этот факт, потому что это математически корректно (в отличие от результата, но тут дело в особенностях вычислений с плавающей точко вообще).

>Только за этой корректностью следит программист, поскольку строгой типизации для элементов массива в руби нету.
Статической типизации нет. Строгая есть. Единственный пример неявного преобразования, который впервые за тред только что был предоставлен, математически корректен. Если настолько строго определять строгую типизацию, то её вообще ни в одном языке нет. Какой ЯП не преобразует Integer во Float в случае, если другой аргумент операции Float?

04 Авг, 19:55 #379 #813262

>>812436
>Писать веб, в основном
А разве для веба не достаточно PHP/JS/...?
>Да, http://rubyjobs.ru и https://upwork.com
Как то мало ваканасий по сравнению с теми же PHP/JS/... У вас, наверное, дикая конкуренция.
>Мое имхо, что первым языком стоит учить Си.
Не первый раз вижу такой совет. Почему именно Си? Это основа основ программирования?

Ответы>>813272

04 Авг, 20:10 #380 #813272

>>813262
>А разве для веба не достаточно
>PHP
А тебе оно надо?
>JS
А бекенд на чём?
>У вас, наверное, дикая конкуренция.
Хотя бы не с демпингующими индусами, как в PHP
>Почему именно Си? Это основа основ программирования?
Да

Ответы>>813276>>813399

04 Авг, 20:25 #381 #813276

>>813272
>А бекенд на чём?
На нем же, але.

04 Авг, 23:10 #382 #813399

>>813272
>Хотя бы не с демпингующими индусами
Тащемта индусов полно и на руби. И индусов, и восточноевропейских школьников.
>Почему именно Си? Это основа основ программирования?
>Да
Тогда уж ASM. А в качестве основы для понимания концепций хорошо зайдет и go - тот же Си, только избавленный от ненужного байтоёбства.

Ответы>>813543

# OP 05 Авг, 05:35 #383 #813543

>>813399
>А в качестве основы для понимания концепций хорошо зайдет и go
>тот же Си
Ага, при том что он имеет garbage collector. Тогда уж Rust, вот он точно Сишка по сути.
>Тогда уж ASM
Ну такое. Всё, что можно узнать о компьютерах, изучая асм, можно узнать и при изучении Си. Разве что если компиляторами интересуешься, но там в любом случае столкнёшься с генерацией ассемблерного кода.

Ответы>>814476

06 Авг, 12:34 #384 #814474

>>813002
можно мне тоже с вами? я не могу учавствовать целыми днями, да и знаний у меня не так много, хочу посмотреть просто что вы делаете, и может задать вопросы.
577C9D565633ACD73E92EE67D8746B13DE10FCB0B627A6224A7D452E5C28B32C4DDF174EDB3F
только создал акк в токсе, смогу ответить вечером только, если что

Ответы>>814873

06 Авг, 12:36 #385 #814476

>>813543
>Ага, при том что он имеет garbage collector. Тогда уж Rust, вот он точно Сишка по сути.
Сразу видно человека даже не открывавшего кода на расте.
мимокрокодил

06 Авг, 15:46 #386 #814598

Делаю скачивалку всех файлов с треда, решил запилить многопоточность и внезапно соснул
http://ideone.com/k2l4Hm
на 16 строке возникает пиздецома, Bad file descriptor. Нагуглить решение моей проблемы не могу. С чем это всё связано? И как сделать все правильно?

Ответы>>814643>>814652>>814873

06 Авг, 16:32 #387 #814639

Нужно обойти директорию и возникает обсер на не asci именах файлах. Система Шindoшs. Но, после полчаса гуглежа, я вроде бы нашел решение нужно заменить
Dir["∗∗/∗.txt"]
на
Dir["∗∗/∗.txt".force_encoding('utf-8')]
У мена два вопроса
1) почему это не является поведением по умолчанию?
2) почему это работает, ведь как известно кодировка NTFS совсем не utf-8, а UTF16?

Ответы>>814873>>814944

06 Авг, 16:33 #388 #814643

>>814598
помогите плз, мне пишет в консоль
You may have encountered a bug in the Ruby interpreter or extension libraries.
Bug reports are welcome.
Версия руби 2.3.1, ось Xubuntu 16.04

06 Авг, 16:43 #389 #814652

>>814598
кстати, поцоны, я думаю, может это из-за того что на дваче https?

33 Кб, 1299x340

06 Авг, 19:38 #390 #814763

Привет, Аноны.

Почему моя страница выводит массив объектов после вывода тайтла по отдельности?
Гугл выдает всякую инфу по дебагу... Я знаю, я тупой

Вот код:
<%= @messages.each do |message| %>
<h2><%= message.title %></h2>
<% end %>

<%= link_to "New Message", new_message_path %>

Ответы>>814772

06 Авг, 19:48 #391 #814772

>>814763
> <%= @messages.each do |message| %>
> =

потому что =

Ответы>>814776

06 Авг, 19:50 #392 #814776

>>814772
Спасибо

А ближе к тому, как оно работает, разве оно игнорирует "do |message|" при выводе и выводит messages.each?

Ответы>>814792

06 Авг, 19:59 #393 #814792

>>814776

> как оно работает

http://rusrails.ru/action-view-overview

> В шаблоне ERB код Ruby может быть включен с помощью тегов <% %> и <%= %>. Теги <% %> используются для выполнения кода Ruby, который ничего не возвращает, такого как условия, циклы или блоки, а теги <%= %> используются, когда вам нужен результат выполнения.

Просто запомни, что когда нужно что-то вывести на страничку используется <%= %>, в остальных случаях вывод подавляется через <% %> теги

Ответы>>814796

132 Кб, 1024x683

06 Авг, 20:02 #394 #814796

>>814792
Спасибо, Анон

# OP 06 Авг, 21:21 #395 #814873

>>814598
Для начала выложи код на гитхаб (можно на фейковый, я так делаю) и приведи его в порядок (запусти команду rubocop --auto-correct из гема rubocop), потому что в такой лапше никто разбираться не станет. Дальше постарайся разбить на методы всё таки. Можешь дать мне доступ к репозиторию (мой гитхаб https://github.com/meoweg), я тебе помогу.

>>814474
Нас итак уже трое. Может другое что-нибудь замутим. Я написал тебе в токсе.

>>814639
>1) почему это не является поведением по умолчанию?
Потому что Ruby использует строки с переменной кодировкой, как и Perl. Если ты писал на Python, то мог сталкиваться с выкидыванием исключений при работе со строками. Читал как-то очень годную статью со сравнением способов представления строк, к сожалению не могу найти.
>2) почему это работает, ведь как известно кодировка NTFS совсем не utf-8, а UTF16?
Хз

Ответы>>815482

# OP 06 Авг, 23:18 #396 #814944

>>814639
>1) почему это не является поведением по умолчанию?
И ещё, конечно, ты можешь писать в начале кождого файла
# -- coding: utf-8 --
В UNIX это, кажется, стандартное поведение. RuboCop больше не советует писать это по умолчанию.
Да, в RuboCop есть cop, который следит за наличием этих комментариев

Ответы>>814945

# OP 06 Авг, 23:19 #397 #814945

>>814944
># -- coding: utf-8 --
Звёздочки между дефисами проебались

314 Кб, 1504x1052

07 Авг, 02:23 #398 #815008

Уже несколько раз присылали на вакансию мидл/сеньор тестовое задание по типу "очередной блог с девайсом бутстрапом". Пикрелейтед - на вакансию за 100к.
Это нормально? Есть ли смысл тратить время на такую хуйню?

Ответы>>815010>>815011>>815012>>815015>>815104>>815126

07 Авг, 02:25 #399 #815010

>>815008
Это же один в один рейлстуториал. У тебя что, нету рейлстуториала на гитхабе?

Ответы>>815360

07 Авг, 02:29 #400 #815011

>>815008
А вообще, слишком уж объемный проект для тестового задания. Два дня забесплатно никто работать не должен. Если оплачивается - делай конечно.

07 Авг, 02:44 #401 #815012

>>815008
Хз, где ты такие задания берешь. Мне обычно повеселее попадаются.

Последнее — было сделать одностраничое приложение с клиент-сайд валидацией (ajax). Делал долго около 10 чвсов, но по большей части разбирался — какие гемы там есть, и потом как выбранное решение на 5 рельсу прикрутить.

Бтв, сейчас на рубиджоб задание висит, вот там уровень повыше будет, не то что эта хуита на картинке. Посмотри анон, там на вакансию еще тупое название в заголовке.

Вообще, если сложно делай конечно эту штуку, хоть разберешься. Ну а если хуита — не делай, все просто.

07 Авг, 03:07 #402 #815015

>>815008
У меня сейчас не слабо шаблон порвался после прочтения задания.
мимо

07 Авг, 10:11 #403 #815092

Аноны, нужно реализовать что-то вроде календаря в базе данных.
Необходимо хранить для юзера некоторые временные промежутки (например рабочие часы, но не совсем то), которые могут быть совершенно произвольные, но не пересекаться. Предполагаю, что это должна быть некоторая таблица, которая хранит в себе нужные временные поля и ссылку на юзера. Но не совсем понимаю, как это реализовать:
1) Поля должны быть не с абсолютными датами, а, например, там должна быть возможность отмечать "первый вторник месяца, с 14 до 18" и тому подобное.
2) Не очень представляю, как правильно добавить проверку на не пересечение дат.
3) Желательно должна быть сортировка дат в связи по временной оси. С учетом пункта 1, не очень подставляю как это сделать.
Может есть уже гем с подобным функционалом? Помоги, анон!

Ответы>>815115>>815127>>815139

07 Авг, 10:28 #404 #815104

>>815008
Ещё можно витащить с гитхаба MckenzieChild блог, который попадает на 80% под описание с devise,postgres(да и heroku), прикрутить отдельно bootstrap, впрыгнуть в поезд и поехать по рельсам

07 Авг, 10:40 #405 #815115

>>815092
Нотацию cron посмотри

Ответы>>815118

07 Авг, 10:48 #406 #815118

>>815115
Хорошая идея, но она не снимает вопрос, как валидировать на непересечение и т.д. Может знаешь гем с нужным мне функционалом, или любой гем использующий подобный формат дат, откуда можно посмотреть валидации и парсер?

Ответы>>815120>>815124

07 Авг, 10:52 #407 #815120

>>815118
Я бы сделал через DataModel, в нее сериализатор. User has_many DataModel, а валидацию через reject_if для нестед атрибутов в модели пользователя…

Ответы>>815122

07 Авг, 10:53 #408 #815122

>>815120
Спасибо, блеванул.

07 Авг, 10:55 #409 #815123

Да, и в формате крона не получится указать интервал, пересекающий сутки, например с 20:00 вторника до 08:00 среды, придется создавать 2 записи. Впрочем может так и правильнее.

Ответы>>815125

07 Авг, 10:56 #410 #815124

>>815118
На пересечение надо над матаном чуть чуть подумать, в плане человеческого календаря. Раз есть вечные календари, значит можно без проверки в бесконечное будущее убедиться, что пересечений отрезков нет.

Насчет гемов не знаю.

Ответы>>815128

07 Авг, 11:01 #411 #815125

>>815123
Можно указать начало и продолжительность. Либо начало/конец в cron .

Валидация временных отрезков становится достаточно сложной с кроном. Но если запилить, получится крутой гем- нужен редко, но сильно.

P.s. может такой уже есть

Ответы>>815130

07 Авг, 11:02 #412 #815126

>>815008
Любой мидл сделает это за один день, да даже некоторые джуниоры. Если для тебя оно кажется трудным, лучше потрать пару недель на изучение рельс.

Ответы>>815360

07 Авг, 11:04 #413 #815127

>>815092
сколько готов заплатить за гем?

07 Авг, 11:04 #414 #815128

>>815124
Проверка пересечения двух конкретных промежутков проста:
Для каждого элемента форматной строки, начиная с последнего: раскладываем элемент обоих строк в множество чисел, если нет пересечения: возвращаем true, если есть пересечение - идем к следующему элементу. Если есть пересечение у всех элементов - возвращаем false. Но не представляю как это сделать не для двух интервалов дат, а для всех, имеющихся в базе, не получив при этом факториальную сложность.

Ответы>>815133

07 Авг, 11:05 #415 #815130

>>815125
Я бы указал начало/конец обычным временем, а периодичность кроном описал. Это слегка избыточно, но просто в реализации.

Ответы>>815144

07 Авг, 11:09 #416 #815133

>>815128
Берем точку, тыкаем ее на линию. Надо доказать, что точка не попала в один из отрезков на этой линии.

Ответы>>815134

07 Авг, 11:11 #417 #815134

>>815133
Для этого нужно достать из базы данных все отрезки. А если их там миллион?

Ответы>>815136

07 Авг, 11:15 #418 #815136

>>815134
Для базы это норм, там же индексы есть. Да и заливать ничего не надо, достаточно SQL выполнить.

Я бы тупо писал в базу все отрезки сразу на 5 лет вперед, а потом уже начал вспоминать матан на предмет - можно ли легко определить пересекаются ли отрезки где то в бесконечное будущем и как это вычислимо

07 Авг, 11:16 #419 #815139

>>815092
Всё зависит от того, как много будет этих правил, и как часто тебе придётся их вычислять.

1) Ты можешь хранить в бд строку в cron нотации, все вычисления делать в рельсах. (но лучше в pl/pgsql)
2) Ты можешь На каждое правило создавать кучу записей в бд. То есть если у тебя, скажем, период "первый вторник месяца, с 14 до 18" то ты на весь год хуяришь записей.

Ответы>>815143

07 Авг, 11:19 #420 #815143

>>815139
Имхо проще хранить одна строка - одно правило. Потом при эксплуатации будет меньше проблем

07 Авг, 11:20 #421 #815144

>>815130
Теперь понял, что обосрамс, все равно нужно как-то сравнивать кроны.

07 Авг, 11:25 #422 #815147

И какой это должен быть SQL?
Предположим, у нас есть вот такой интервал:
" 8-20 /2 " - каждая вторая неделя месяца с 8 до 20.
Как провалидировать на не пересечение не вытаскивая все записи из базы? Не представляю.
Как вариант, все элементы можно хранить в отдельном поле:
minutes: ""
hours: "8-20"
days_of_month: ""
months: ""
days_of_week: "/2"
years: ""
При этом, перед записью в базу, можно раскладывать отдельный элемент в множество чисел, т.е.:
hours: "8,9,10,11,12,13,14,15,16,17,18,19,20"
days_of_week: "0,2,4"

Теперь нужно как то составить запрос к базе, чтобы найти пересечение. Не очень шарю в SQL, но думаю что запрос WHERE hours LIKE "%8%" OR hours LIKE "%9%"... не очень подойдет... Есть идеи?

Ответы>>815150>>815159>>815162

07 Авг, 11:25 #423 #815150

>>815147
звездочки съелись, ну думаю смысл ясен

07 Авг, 11:36 #424 #815159

>>815147
В принципе если добавить разделитель так же в начало и конец строки, например:
hours: ":8:9:10:11:"
То запрос LIKE "%:8:%" будет работать. Но у меня есть некоторые сомнения в производительности этого решения... Кто шарит в дб, если у нас будет запрос с парой десятков лайков на каждое из нескольких полей, при большом количестве записей в таблице, база данных не помрет?

07 Авг, 11:40 #425 #815162

>>815147
Просто сгенерить все записи в базу, получится обычная таблица. Далее нужно проверить, что новый отрезок встает в пустое место. Если ничего не генерить тогда pgsql/plsql потому что как запрос не сможет проверить ряды по идее

Ответы>>815176

07 Авг, 12:02 #426 #815176

>>815162
А как вот такое решение?:
Перед записью, переводим интервал в бинарную строку по следующему алгоритму: (для месяцев)
hours = "1-10"
hours_set = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
res = ""
(1..31).each do |i|
add = hours_set.includes?(i) : i : 0
res <<= sprintf("%08b", add)
end

В базу записываем бинарную строку. Когда надо проверить на пересечение, выполняем тот же алгоритм для проверяемого значения, и делаем запрос к базе WHERE hours & <проверяемая бинарная строка> = 0
Как идея?

Ответы>>815187>>815614

07 Авг, 12:12 #427 #815187

>>815176
с годами правда сложнее, не запихаешь же в бинарную строку все возможные годы... Или ограничивать допустимый диапазон лет, или придумывать другой механизм для лет

07 Авг, 14:54 #428 #815360

>>815010
В том то и дело, что гитхаб наполовину зеленый, коммиты в рельсы и т.д., но им, судя по всему, похуй.

>>815126
Я же упомянул что подобные задания дают на мидлов/сеньоров.

Ответы>>815420

07 Авг, 16:08 #429 #815420

>>815360
Серьёзно? А сколько зелёных в час должен требовать такой мидл?

Ответы>>815424

07 Авг, 16:22 #430 #815424

>>815420
Не совсем понял к чему ты.

07 Авг, 18:02 #431 #815482

>>814873
мне какой-то японец уже пояснил, нельзя в одном Net::HTTP.start делать сразу несколько запросов

07 Авг, 20:16 #432 #815614

>>815176
Доработал функцию конверта:
def convert(arr)
(1..31).map { |i| arr.includes?(i) '1' : '0' }.join.to_i(2)
end

Это для месяца. В бд храним как целые числа подходящей длины:
8 байт на минуты, 4 на часы, 4 на день месяца, 4 на месяц, 2 на день недели, 8 на год (поддерживаем 64 года). Итого наше представление занимает всего 30 байт (строка в формате cron заняла бы куда больше), и мы легко можем делать выборку на пересечение интервалов используя побитовое "И". Поясните по хардкору, идея норм или я мудак?

Ответы>>815629>>815630

07 Авг, 20:37 #433 #815629

>>815614
Человек, которому потом достанется этот код, вскроет себе вены.

Ответы>>815632

07 Авг, 20:42 #434 #815630

>>815614
Как минимум всю эту хрень нужно описать в комментариях. Через полгода ты сам не вспомнишь как этот ад работает.

07 Авг, 20:48 #435 #815632

>>815629
Что сложного то в этом коде? Переводим интервал времени в битовую маску, храним как число для экономии места. Функция преобразования в 1 строчку, обратного преобразования тоже.

Ответы>>815636

80 Кб, 895x670

07 Авг, 20:52 #436 #815635

Правда ли, что руби ВСЁ?

Ответы>>815638>>815659

07 Авг, 20:52 #437 #815636

>>815632
Есть еще кстати какой-то хитрый алгоритм с умножением простых чисел, не уверен что он применим для этой цели, т.к. не могу в точности тот алгоритм вспомнить) Вот если его получится задействовать, то можно в инт4 уместить очень дохуя лет, и вообще, сэкономить место еще раза в 2. Но тогда точно придется писать комменты)

Ответы>>815637

07 Авг, 20:53 #438 #815637

>>815636
Уже надо писать. Твоя экономия долбаная нихуя не очевидна.

Ответы>>815639

07 Авг, 20:54 #439 #815638

>>815635
Since 2009.

07 Авг, 20:55 #440 #815639

>>815637
ничего ты не понимаешь, это же съэкономленные МЕГАБАЙТЫ, да за такое ПРЕМИЮ выписывать НАДО

Ответы>>815660

21 Кб, 347x300

07 Авг, 21:14 #441 #815659

>>815635
Да

07 Авг, 21:14 #442 #815660

>>815639
Дело же не только в сэкономленных мегабайтах, но и в том, что этот способ хранения делает тривиальной выборки из бд на пересечение с некоторым интервалом. Например мы можем валидировать, что интервал не пересекается с уже созданными для этого юзера, или можем легко найти пересечение интервалов для разных юзеров (например, если это интервалы рабочих часов, можем найти всех юзеров, присутствующих в какой-то момент на рабочем месте). Предложи другой способ хранения, который позволит это делать?

Ответы>>815673

07 Авг, 21:25 #443 #815665

что там по руби 3, он в теории догонит v8?

07 Авг, 21:35 #444 #815673

>>815660
В постгресе целая куча типов и функций для даты/времени. Твои битовые маски-шоу вызывают недоумение. Use the right tool for the job.

Ответы>>815676

07 Авг, 21:40 #445 #815676

>>815673
Пожалуйста, опиши в постгресовских типах даты/времени следующий временной интервал: "с 9 до 12 и с 14 до 18 каждый понедельник первой декады месяца". И потом, если у тебя это получится, расскажи, как делать выборки из базы с пересечением интервалов.

Ответы>>815707

07 Авг, 22:18 #446 #815707

>>815676
Чому не сделать поля: время_начало, время_конец, день_недели, месяц.
И стандартные запросы: где месяц такой-то и время со стольки до стольки.

Ответы>>815717

07 Авг, 22:25 #447 #815717

>>815707
Тогда запись "с 9 до 12 и с 14 до 18 каждый понедельник первой декады месяца" займет не 1 строку в базе данных, а 20 (10 дней на каждый по 2 строки 9-12 и 14-18). Мегабайты конечно резиновые, но не настолько же. Работать опять же будет медленнее, я не шарю в оптимизациях, которые проводит база данных, но почти уверен, что побитовые операции работают быстрее чем сравнение дат.

Ответы>>815730

07 Авг, 22:36 #448 #815730

>>815717
Так 9-12 и 14-18 это по-любому две разных записи должны быть, иначе если даже что-то одно совпадёт - уже фейл по твоему методу. Более того, проблемы неизбежны если кто-то выбирает в формате "каждый второй понедельник месяца", а кто-то "каждое n число месяца".

Ответы>>815747>>815755

07 Авг, 22:57 #449 #815747

>>815730
Если это запись временного интервала одного процессе - почему должно быть две разные записи? Про фейл с пересечением - обычное побитовое "И" выдаст положительный результат, если есть хотя бы частичное пересечение. Иногда именно это и нужно. Если нужно вернуть положительный результат, только если есть полное пересечение - нужно применить некоторую битовую магию, сейчас сонный не могу срастить как именно, надо разобраться. По второму пункту - опять же, проблема решаема, надо в некоторых случаях применять OR вместо AND на условия по дню месяца/недели

Ответы>>815751

07 Авг, 23:00 #450 #815751

>>815747
А что за процесс такой, в котором есть временная дыра, но никак нельзя туда вклиниться? Тогда это уже 9-18 должно быть, тут без вариантов.

Ответы>>815753

07 Авг, 23:02 #451 #815753

>>815751
Вклинится то как раз можно - если создать интервал как раз в эту временную дыру (с 12:01 до 13:59 например), пересечения битовых масок будет равно нулю.

Ответы>>815757

07 Авг, 23:08 #452 #815755

>>815730
По первому пункту есть идея - я вспомнил, как работает алгоритм с умножением простых чисел. Но придется использовать для хранения не числа, а битовые строки. Суть такова - часть битовой строки отводим под хранение уже описанной маски - эта часть используется для нахождения частичного пересечения. Другая часть отводится под хранение битовой маски, полученной из перемножения соответствующих простых чисел - она нужна для нахождения полного пересечения. Суть алгоритма такова, что перемножение разных простых числе всегда дает уникальный результат. Т.е. (псевдокод):

Результат = 1
Для первых n простых чисел:
Если порядковый номер простого числа имеется в списке дат:
Результат = Результат * текущее простое число

Полученный результат хуячим в битовую маску. При выборке - если нам нужно частичное пересечение: WHERE "поле & запрос != 0"
Если нужно полное пересечение:
WHERE (поле >> 31) & запрос != 0"
Крайние правые 31 бит отводятся под обычную маску (для числа месяца).
Не уверен насчет синтаксиса SQL, но это несущественно.

Ответы>>815768

07 Авг, 23:11 #453 #815757

>>815753
Ок, всё равно это становится неудобно управляемым, если надо что-то изменить. Зачем тебе зависимость между двумя разными интервалами? Захотел поменять 9 на 8 и 14 на 15, кто-то один не вписался - не сохранились оба. Не понимат.

Ответы>>815763

07 Авг, 23:20 #454 #815763

>>815757
Так в этом и суть проверки на непересечение - если есть какие то задачи на определенное время, они не должны пересекатся с другими задачами.
Если в одной задаче интервал с разрывом - это только говорит о том, что такая вот задача. Но она должна сохранять атомарность. Если это две задачи - их нужно разнести на две записи. Если же использовать поля вроде "дата начала", "дата кончала" и т.д. - то единая задача потеряет атомарность.

07 Авг, 23:27 #455 #815768

>>815755
Да, я подумал, с простыми числами я загнул. Достаточно вместо битового "AND" использовать битовый "XOR", и инвертировать проверку. т.е. если поле ^ запрос = 0 - значит есть полное пересечение.

08 Авг, 19:53 #456 #816238

Посоны, изучаю rails.
Хочу из контроллера сохранить ссылку на @user в строке в базу, как это сделать? link_to, url_for не работают.
Типа хочу чтобы когда из базы на вьюху выгрузилось я такой
[code]
<%= yoba.string %>
[/code]
и срендерилась вьюха с сылкой на @user.

Ответы>>816386>>816400

09 Авг, 01:40 #457 #816386

>>816238
Напиши, как ты линк_ту используешь. Хранить ссылку на юзера в базе - такая себе идея.

Ответы>>816555

10 Кб, 688x308

09 Авг, 02:51 #458 #816393

Это снова я. Теперь вот на такой задаче застрял.

Ответы>>816395

09 Авг, 02:59 #459 #816395

>>816393
Ну, так ты вопросы задавай. Или за тебя решить? Тогда какой тебе профит?

Ответы>>816397

11 Кб, 524x359

09 Авг, 03:06 #460 #816397

>>816395
Да, желательно разжевать, как в методе получить аргументы блока и присвоить им значение массива. В общем не могу понять yield, точнее его взаимодействие в методе с |x,y,z|

Ответы>>816403

09 Авг, 03:21 #461 #816400

>>816238
ну я бы сделал в контроллере
@user.link = request.original_url
http://apidock.com/rails/ActionDispatch/Request/original_url

09 Авг, 03:46 #462 #816403

>>816397
yield - это вызов функции, которой является блок.

Ответы>>816404

09 Авг, 03:53 #463 #816404

>>816403
а как получить аргументы функции в методе?

Ответы>>816427

09 Авг, 06:36 #464 #816427

>>816404
Язык программирования Ruby Флэнаган Мацумото

Трудоустройство 09 Авг, 12:55 #465 #816523

Так, парни, я знаю что руби не востребован, поэтому шутки в сторону.
Где сейчас принято размещать свои резюме? Очевидный HeadHunter?

Ответы>>816533>>816604

09 Авг, 13:30 #466 #816533

>>816523
Нигде. НН помойка.
Пиши сразу на почту.

Ответы>>816541>>816681

09 Авг, 13:41 #467 #816541

>>816533
Да ну нах. Я-то собирался резюме разместить и сидеть ждать.
Все знакомые коллеги, которые искали работу, так делали. Я думал это норма.

09 Авг, 13:59 #468 #816555

>>816386
Просто я хочу сделать оповещалки типа "к вашей записи (ссылка на запись) пользователь (ссылка на пользователя) добавил комментарий (ссыка на комментарий и превьютекст)". А в самой оповещалке из полей только текст и отправитель. Как такое провернуть? Сторонние гемы не использовать чтобы знать как и почему это работает.

09 Авг, 15:29 #469 #816602

Аноны, если кто-то использует гем Reform, расскажите, как в нем объявлять вложенные полиморфные формы?

09 Авг, 15:32 #470 #816604

>>816523
да, можно и там. Но будь готов мониторить вакансии сам. Работадатель без платного аккаунта не сможет увидеть твоё резюме пока ты ему не напишешь.

Ну и будь готов встретить там неадекватов, которые за копейки будут просить «вырезать картинки из jpg», «освоить Пехапе за неделю» «бесплатно сделать сайт в качестве тестового задания». Но норм вакансии тоже есть, да.

Ответы>>816681

09 Авг, 17:22 #471 #816681

>>816604
>>816533
А вот я тут еще хаброподелие вспомнил https://moikrug.ru/vacancies. Похоже бывший Хантим.

Кстати, вроде бы не так уж мало вакансий на хедхантере. Пхп конечно гораздо больше (и что сука самое обидное, они нормальные, не только допиливание джумлы под интернет-магазин).

Ответы>>816684

09 Авг, 17:35 #472 #816684

>>816681
Вообще-то нет, я ошибся, вакансий очень мало.

А где можно помониторить буржуев, которые не против себе макаку выписать из снежной африки?

Ответы>>816763

09 Авг, 19:54 #473 #816763

>>816684
>>816684
jobspotting, hired.com (сложна), we're hiring hackernews, weworkremotely, блять. тысячи их.
И тут важна цена, которая ты себе набьешь, а не скилы. А ещё твой английский и временная зона (увы)

Ответы>>816766>>816909

09 Авг, 19:57 #474 #816766

>>816763
Ох лол, цена. Ну-ну. Самое важное - английский, потом скиллы. Цену выбирать ты вообще фактически не можешь. А еще любая не-Америка в твоем местоположении сразу отсекает тебя от половины вакансий.

Ответы>>816909>>816941

09 Авг, 22:51 #475 #816909

>>816763
>>816766
Ну я имел в виду на самом деле какие-то близкие страны, типа Польшы. Ни каких планов не строю, просто слышал несколько историй, как чуваки почти на пустом месте устраивались в тамошние конторы. Не навсегда, а как-то по контракту на год там, например.
Раз уж буду искать работу, почему не посмотреть варианты.

Алсо, парни, что-то я в замешательстве. До того как влился в ИТ успел пошароебиться по всяким менеджерам. И я вот сейчас задумался, а стоит ли писать тот нерелевантный опыт? Еще пару лет назад торкнуло меня сходить на курсы PM. Сейчас уже ничего не помню. Вот стоит ли это все писать? А блять, если не писать, то у меня опыта 3 года и тот наполовину пыхо-макаком.
Как грамотно опыт преподнести?

Ответы>>816945

10 Авг, 00:11 #476 #816941

>>816766
я имею в виду цену как специалисту, а не сырые $$$

10 Авг, 00:23 #477 #816945

>>816909
>Алсо, парни, что-то я в замешательстве. До того как влился в ИТ успел пошароебиться по всяким менеджерам. И я вот сейчас задумался, а стоит ли писать тот нерелевантный опыт? Еще пару лет назад торкнуло меня сходить на курсы PM. Сейчас уже ничего не помню. Вот стоит ли это все писать? А блять, если не писать, то у меня опыта 3 года и тот наполовину пыхо-макаком.
>Как грамотно опыт преподнести?
Если нормальная контора, то стоит. Будь спецом в своей узкой области, но и расширять кругозор надо тоже. На западе вообще всё пишут и там работодатели это ценят.

Если контора так себе, то не пиши.

10 Авг, 12:59 #478 #817127

Ананасы, поясните по хардкору за ActiveModelSerializers
Ситуация такая:
[code]
Есть модель Zalupa
has_many :user_zalups

модель UserZalupa
belongs_to :zalupa
с полями zalupa_id, user_id, size

при запросе индекса ZalupsController с параметром user_id
отдаю в json Zalupa.last
[/code]

Чот никак не пойму, как добавить еще user_zalups с user_id к сериализованной залупе?

10 Авг, 17:58 #479 #817297

Анон, суть такова. Нужно хранить где-то константные настройки для моделей (например, дефолтные настройки пользователя, список допустимых ролей, и тому подобное). Собственно, эти константы могут быть довольно объемными, хэши по несколько сотен-тысяч строк и т.д. Очевидно, что хранить их в коде глупо, в бд тоже не думаю, что разумно (может менятся набор столбцов, количество записей, и т.д.) - лишние миграции, модели, задачи на обновления, требующие поддержки... Короче, думаю хранить в yml файле. Вопрос - где такого рода настройки принято размещать? В какой папке, всмысле. Может, какой-то гем есть подходящий, например с возможностью валидации файлов?

Ответы>>817303

10 Авг, 18:06 #480 #817303

>>817297
https://github.com/railsconfig/config
В папку config клади.

Ответы>>817304>>817309

10 Авг, 18:07 #481 #817304

>>817303
А, и вот это ещё:
https://github.com/settingslogic/settingslogic

10 Авг, 18:16 #482 #817309

>>817303
Спасибо, но немного не то. Использовать можно, но у этого гема немного другая семантика, чем нужна мне. Мне нужно хранить константы с настройками в соответствующих моделях, и эти константы будут загружаться из файла на старте. Плюс никаких зависимостей от окружения и т.д.

Ответы>>817374

10 Авг, 20:05 #483 #817374

>>817309
Блин, создай yml, прочитай и замемоизируй его в константу в классе. Не понимаю, что за требования такие.

Ответы>>817401

10 Авг, 20:44 #484 #817401

>>817374
Я так и хочу, спрашиваю куда этот файл положить? Как конвенциями предусмотрены такие вещи?

10 Авг, 23:12 #485 #817499

Реквестирую годный гайдос по react,redux в связке с ror.

Ответы>>817505

10 Авг, 23:22 #486 #817505

>>817499
Более-менее серьезной литературы по связке react+ror me не видел.

Но гайдики по основам попадались вот, например:

https://blog.arkency.com/assets/misc/rails-meets-react/rails-meets-react-sample.pdf

имхо подобным modern штукам лучше на реальных проектах учится, там хоть можно подсмотреть код от более опытных коллег. Книги просто не успевают, впрочем может не прав и это просто отсутствие авторов, что готовы написать cookbook о ror + react

Ответы>>817509>>817533

10 Авг, 23:25 #487 #817509

>>817505
Прав. Такое, если честно, даже смысла нет писать на целую книгу. Это то же самое, что из себя сейчас представляют книги по jquery и ajax 7-летней давности.

11 Авг, 00:02 #488 #817533

>>817505
Да мне и не нужна серьезная, чисто чтоб было написано "Ну вот смотри делаешь так так - работает, это основы, дальше читай доки и разбирайся сам."

11 Авг, 11:55 #489 #817709

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

Ответы>>817770

11 Авг, 13:15 #490 #817770

>>817709
http://railstutorial.ru/chapters/4_0/beginning
Это классика, это знать надо.

Ответы>>817894

147 Кб, 1365x713

11 Авг, 15:57 #491 #817894

>>817770
Спасибо, вроде годно

Ответы>>817944>>818223

11 Авг, 17:12 #492 #817944

>>817894
скинь темку для идешки плез

Ответы>>818031

11 Авг, 20:11 #493 #818031

>>817944
Тема не моя, а кастомная мне one dark напомнила

11 Авг, 20:55 #494 #818066

Как реализовать функцию хранения участка аватара, как в вк например? Я предполагаю, что надо в отдельной модели, хранящей аватар, хранить левую верхнюю и правую нижнюю точки выбранного участка, но не уверен, надо ли хранить эти данные в пикселях, процентах, или чем то еще? Не уверен как отреагирует фронт при масштабировании изображения, подскажите?

Ответы>>818083>>818309>>818336

11 Авг, 21:11 #495 #818083

>>818066
Тут смотря что ты можешь себе позволить - место на диске vs вычисления + немного лишнего трафа. Я бы просто кропал.

Ответы>>818088

11 Авг, 21:21 #496 #818088

>>818083
Ну так предполагается, что юзер может в любой момент выбрать новый участок из картинки, не перезагружая ее

Ответы>>818147>>818177

11 Авг, 22:52 #497 #818147

>>818088
Я не он и если правильно понимаю вопрос, то ты просто хранишь соурс изображения и его версии. В частности версия для аватарки, кропнутая нужным образом.
Вот только для меня была бы большая проблема реализовать интерфейс для такого юзер-кропа.

11 Авг, 23:53 #498 #818177

>>818088
В любом случае он должен данными обменяться с бэком, так какая разница кроп или вычисление?

12 Авг, 01:49 #499 #818223

>>817894
Это ты пикрандом вкинул или это имело отношение к Хартлу?

12 Авг, 10:35 #500 #818309

>>818066
https://foliotek.github.io/Croppie/

# OP 12 Авг, 11:02 #501 #818336

>>818066
>Как реализовать функцию хранения участка аватара, как в вк например?
В CarrierWave есть мощная система обработки изображения. Можешь как следует сконфигурировать обработчик и даже написать кастомный метод. Хранятся все полученные варианты картинки разными изображениями на диске, чтобы по запросу клиента сразу отдавать нужный вариант. Это важно, например, чтобы уменьшить мобильный трафик, отдавая только самый маленький вариант.

12 Авг, 14:31 #502 #818460

Если у меня еще нету домена, один лишь публичный IP, могу ли я добавить субдомен? (NGINX)

server {
listen 80;
server_name mailcatcher.example.com;

location / {
proxy_pass http://localhost:1080;
}
}

тупо не работает (

Ответы>>818729

12 Авг, 22:41 #503 #818729

>>818460
Можешь. Надо или прописать домены в /etc/hosts, либо воспользоваться гемами Pow (вроде только для Mas OS) или Prax. Сам ими не пользовался, мне /etc/hosts хватает. На винде расположение этого файла гугли сам, если ты вдруг на винде.

Ответы>>818731>>818732

12 Авг, 22:43 #504 #818731

>>818729
Сорян, Pow не гем, но не суть. Сайт http://pow.cx/

ПЕРЕКАТ БУДЕТ ЗАВТРА

12 Авг, 22:44 #505 #818732

>>818729
Prax тоже не гем, кстати (почему то)
https://github.com/ysbaddaden/prax

автоперекат !!fuyn/Mm0/k 13 Авг, 08:29 #506 #818851

ПЕРЕКАТ
Е https://2ch.hk/pr/res/818850.html (М)
Р https://2ch.hk/pr/res/818850.html (М)
Е https://2ch.hk/pr/res/818850.html (М)
К https://2ch.hk/pr/res/818850.html (М)
А https://2ch.hk/pr/res/818850.html (М)
Т https://2ch.hk/pr/res/818850.html (М)

автоперекат !!fuyn/Mm0/k 13 Авг, 08:29 #507 #818852

ПЕРЕКАТ
Е https://2ch.hk/pr/res/818850.html (М)
Р https://2ch.hk/pr/res/818850.html (М)
Е https://2ch.hk/pr/res/818850.html (М)
К https://2ch.hk/pr/res/818850.html (М)
А https://2ch.hk/pr/res/818850.html (М)
Т https://2ch.hk/pr/res/818850.html (М)

автоперекат !!fuyn/Mm0/k 13 Авг, 08:29 #508 #818853

ПЕРЕКАТ
Е https://2ch.hk/pr/res/818850.html (М)
Р https://2ch.hk/pr/res/818850.html (М)
Е https://2ch.hk/pr/res/818850.html (М)
К https://2ch.hk/pr/res/818850.html (М)
А https://2ch.hk/pr/res/818850.html (М)
Т https://2ch.hk/pr/res/818850.html (М)

15 Авг, 16:38 #509 #820435

>>812248
связался, все в поряде

15 Авг, 16:39 #510 #820436

>>812247
да

15 Авг, 21:22 #511 #820651

>>803890
>основная моя претензия это то что нельзя переключаться между окнами эдитора нормальным способом
Если ты про табы редактора, то можно поставить хоткеи на prev\next tab. И быть счастливым.

15 Авг, 21:25 #512 #820654

>>803904
>Преположим мы находимся в гемфаиле. нам нужно попасть в модель компани в рубимайне это намного больше действий даже с шорткатом.
Ctrl + N (Find Class) -> c.. o.. m.. p.. a.. -> Enter
Или через Ctrl + E (Recent Files), если компани была недавно открыта.

Тред утонул или удален.
Это копия, сохраненная 4 сентября 2016 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.

« /pr/В начало тредаВеб-версияНастройки/a//b//mu//s//vg/Все доски

Пользуетесь скринридером — пишите, что можно улучшить.
Host-Food.ru — надёжный хостинг от 12 руб/мес | Free DNS
Зеркала М.Двача: m2ch.hk, m2ch.lib, m2chfapiswfw2wcakptqp4o6ltgchvjuxfab7urxlduraomtlnhw5xad.onion