Сохранен 540
https://2ch.hk/pr/res/441544.html
Прошлые домены больше не функционируют, используйте адрес ARHIVACH.HK.
24 декабря 2023 г. Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!

Ruby Thread

 Аноним OP 24/02/15 Втр 02:09:04 #1 №441544 
14247329440140.jpg
14247329440511.jpg
14247329440532.png
14247329440583.jpg
FAQ

1. C чего мне начать, чтобы стать рубистом?
Отличным началом будет Eloquent Ruby или The Well Grounded Rubyist.

Затем читаем Metaprogramming Ruby. На протяжении чтения вы должны писать код, конечно же.
Чтобы не задавать глупых вопросов уровня дибилоида, который не нашёл доки > http://ruby-doc.org/

Можно пройти руби онлайн - http://tryruby.org/levels/1/challenges/0
Не веришь в свои силы? Прочитал уже книжек много и силы свои хочешь познать, сделай - http://rubykoans.com

2. Какой gem посмотреть, чтобы понять, как писать код?
Лучше всего посмотреть небольшие gem'ы вроде cancan, devise, camping.

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
Для дотошных читателей есть The Rails 4 Way.

7. Хорошие практики по руби и рельсам?
Читаем Rails AntiPatterns, смотрим Rails Best Practices, также неплохо посмотреть Rails Recipes.

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. Есть ли у руби русское коммьюнити?
Нет. Вернее есть, но оно протухло и там полно людей у которых чсв высоко.
Яркий пример - [email protected]

11. Какие гемы стоит знать?
capybara, rack, rspec, devise, cancan, simple_form, solr, sinatra, тысячи их.

12. Где можно задать глупые и неочень вопросы?
- здесь
- stackoverflow.com
- в рассылке rails-talk
- оф. форум рубей http://www.ruby-forum.com

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

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

Предыдущие треды:
https://2ch.hk/pr/res/425593.html
http://arhivach.org/thread/46624/
http://arhivach.org/thread/32141/
http://arhivach.org/thread/35764/
Аноним 24/02/15 Втр 03:02:36 #2 №441554 
Поцчему http://railstutorial.ru/chapters/4_0/beginning нет в шапке? Единственный сносный перевод, который встречался мне за всю жизнь.
Аноним 24/02/15 Втр 11:50:17 #3 №441599 
>>441554
>1. C чего мне начать, чтобы стать рубистом?
> http://railstutorial.ru/chapters/4_0/beginning

Опять ты мудило со своими рельсами лезешь во все щели?
Аноним 24/02/15 Втр 13:42:05 #4 №441621 
>>441599
А реально, какое будущее было бы у руби, если бы не рельсы?
Аноним 24/02/15 Втр 13:46:39 #5 №441624 
>>441621
Какое будущее было бы у питона, если бы не dg?
Аноним 24/02/15 Втр 13:48:55 #6 №441626 
>>441624
никакова
Аноним 24/02/15 Втр 13:49:35 #7 №441627 
>>441624
Большое, джанго далеко не единственное, и на практике, далеко не основное, зачем нужен питон. А вот если руби, то только рельсы. Пруф ми вронг?
Аноним 24/02/15 Втр 14:01:36 #8 №441636 
>>441599
а нахуй руби нужны без рельс? все остальное питон и ко заменяют.
Аноним 24/02/15 Втр 14:15:44 #9 №441639 
>>441636
Нахуй питон, если его GO заменяет?

Где вас таких олигофренов берут?
Аноним 24/02/15 Втр 14:29:16 #10 №441640 
>>441627
джанго не нужен, когда есть doug web
Аноним 24/02/15 Втр 15:42:08 #11 №441672 
>>441639
Расскажи про известные продукты на раби, исключая рельсошедевры.
Аноним 24/02/15 Втр 16:09:47 #12 №441692 
>>441672
Faye, EM, Chef, Nokogiri.
Аноним 24/02/15 Втр 16:15:26 #13 №441694 
>>441692
Но ведь эти плагины без рельс бесполезны. И вообще я спрашивал про нормальные юзабельные продукты, а не дополнения.
Аноним 24/02/15 Втр 16:26:53 #14 №441698 
>>441692
vagrant еще
>>441694
Так это прекрасно, что они плагины. Ты их можешь прикрутить к рельсе(или другому фреймворку), а можешь использовать в каких-нибудь говноскриптах.
Аноним 24/02/15 Втр 16:30:27 #15 №441699 
Какую нишу занимает этот язык с сопутствующими ему технологиями? Рельсы для чего-нибудь кроме прототипирования веб-приложений используются?
sageАноним 24/02/15 Втр 16:51:18 #16 №441708 
>>441699
>Какую нишу занимает этот язык с сопутствующими ему технологиями?
это язык-пахан, он всех нагибает, в этом его суть
Аноним 24/02/15 Втр 17:52:46 #17 №441721 
>>441544
Поясните по хардкору за тесты в RoR.
Аноним 24/02/15 Втр 18:19:11 #18 №441732 
14247911514660.jpg
>>441699
>прототипирования
OHYEL
Аноним 24/02/15 Втр 18:56:09 #19 №441754 
14247933692460.jpg
Анон, использую гем Active Admin для быстрого поднятия админки на рейлс. Но столкнулся с такой проблемой. Не могу сделать нормальный загрузчик изображений. Нужно чтобы можно было добавлять несколько в стиле загрузчика вк, на пхп или node.js я такой писал за пару минут, но тут столкнулся с проблемой. Во-первых, я новичек в рельсах, во-вторых готовых гемов нет (точнее есть один но там 0 документации), а форму актив админка кастомизировать адово тяжело, нет возможности впилить кастомный код с foreach.

Суть, реквизтирую удобный загрузчик фоточек для актив админ или аналоги актив админ гема
Аноним 24/02/15 Втр 19:25:24 #20 №441766 
>>441694
Макака не знает, что кроме сайтов можно ещё что-то делать.
Аноним 24/02/15 Втр 20:28:01 #21 №441783 
Как решить что нужный функционал которого нет в либе, достаточно нужный остальным что бы запилить пулл-реквест а не манкипатчить?
Аноним 24/02/15 Втр 20:29:40 #22 №441784 
Зачем такой код?

HUI = "pizda'.freeze
Аноним 24/02/15 Втр 20:42:52 #23 №441788 
>>441754
Куда ты хочешь загрузить изображения? Скорее всего тебе нужен будет paperclip или аналог.
Аноним 24/02/15 Втр 21:02:10 #24 №441797 
>>441784
http://fprog.ru/2009/issue1/eugene-kirpichov-fighting-mutable-state/
Аноним 24/02/15 Втр 21:06:18 #25 №441800 
>>441797
Пеар параши.
Аноним 24/02/15 Втр 21:08:27 #26 №441803 
>>441800
Ну тогда http://www.govnokod.ru — может, поможет... :-(
Аноним 24/02/15 Втр 22:25:54 #27 №441864 
>>441788
Да, я просмотрел все варианты, но из коробки подходит только 1 (jquery fileupload + carrierwave) и то надо допиливать

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

Готового решения для актив админ я не нашел, что странно ведь остальные админские фичи там идут из коробки. Так же у меня не получается кастамизировать, так как весь функционал актив админа (например вьюхи) запрятан в гем и я пока еще слишком непотыен чтобы понять, как мне впилить свой код. Например для отображения формы используется формтастик, но он не дает возможности сделать такую вещь, как добавить slim теги для загрузчика и к тому же сделать в них форичем вывод изображений которые уже привязаны к итему
Аноним 24/02/15 Втр 22:50:27 #28 №441886 
Нужно искать текст по регэкспам (>5kk rows), стоит ли связывать с эластиком (или еще чем-нибудь особенным) или pg норм?
sageАноним 24/02/15 Втр 22:54:03 #29 №441891 
14248076433320.jpg
как отличaть японцев от китайцев от корейцев?
Аноним 25/02/15 Срд 00:10:59 #30 №441935 
Завидую вам, рубибляди. Выучил питухон и джангу, а вакансий хуй да нихуя.
Аноним 25/02/15 Срд 02:00:02 #31 №441986 
>>441891
Со временем учишься различать по телодвижению, мимике. Потом уже и лица не кажутся одинаковыми. Дело привычки.
Аноним 25/02/15 Срд 02:47:42 #32 №442000 
>>441935
лол, а я вижу обратное, на джанге уже работы больше, чем на рубях.
Аноним 25/02/15 Срд 08:54:22 #33 №442035 
>>441864
Может это тебе поможет, но тут не актив админ, а просто загрузка картинок. http://www.railscook.com/recipes/multiple-files-upload-with-nested-resource-using-paperclip-in-rails/
Аноним 25/02/15 Срд 09:45:55 #34 №442039 
>>441935
ДС?
Аноним 25/02/15 Срд 10:36:24 #35 №442043 
Хочу делать сайты агрегаторы массивов информации, web сервисы и прочие парсеры.
Начал учить Ruby.
Всё правильно делаю?
Аноним 25/02/15 Срд 11:01:49 #36 №442048 
>>442043
Какой опыт в программировании?
Аноним 25/02/15 Срд 11:12:02 #37 №442049 
>>442048
По сути никакого, в 2010 обезьянил со всякими CMS на php.
Html, CSS вот это ещё "изучал".
Скоро мне стукнет 25 и как ни странно кодинг как то проще и понятней воспринимается.
Аноним 25/02/15 Срд 11:30:01 #38 №442052 
14248530012540.jpg
def show
@post = Post.find(params[:id])
@total_up = @post.where(acepted: true).count
end

Ананасы, пытаюсь сделать подсчет поставленых booleanов (аналог "лайков" вбыдле)

суть такая, кнопка с boolean типом, ну и сколько людей поставят true, столько и должно быть count показывать, надеюсь ясно изьяснился. Сейчас выдает ошибку undefined method `where'
Как пофиксить? (алсо, пока одна модель post есть, без users)
Аноним 25/02/15 Срд 11:38:58 #39 №442055 
>>442052
@total_up = Post.where(acepted: true).count
Аноним 25/02/15 Срд 11:41:09 #40 №442056 
14248536690900.jpg
>>442055
Спасибо умник, но это не то что нужно. Потому что так показывает к каждому посту одинаковое количество лойсов, даже там, где их еще не ставил. Нужно чтоб к конкретному посту находилось количество поставленных классов.
Аноним 25/02/15 Срд 11:58:27 #41 №442064 
>>442056
Блять, ну и архитектура у тебя. Как ты собрался булевые значения считать? Надо сделать типа такого, post.like_count и если пользователь поставил галочку в поле acepted, то увеличиваешь like_count га 1. Но чтобы пользователи не лайкали один и тот же пост по многу раз тебе надо будет сделать у юзера has_many: liked_posts
Аноним 25/02/15 Срд 12:00:10 #42 №442066 
Анон, поясни за пуму.

Вот думаю уходить с юникорна на него или нет. Основное за - охуенно работает с keep alive при пользовании апликухи уебками с хуевыми каналами связи ( например 2g ).
Аноним 25/02/15 Срд 12:02:18 #43 №442067 
>>442052
@total_up = Post.where(id: params[:id], acepted: true).count
Но это вернет либо 1, либо 0, всегда, либо лайкнули, либо нет.

Только схема у тебя какая-то кривая, если я правильно понял. Лайки для поста надо хранить в отдельной таблице, если хочешь понимать кто и что лайкнул, либо завести счетчик в модели поста, если нужно просто количество.
Аноним 25/02/15 Срд 12:04:23 #44 №442068 
>>442064>>442067
Понял, спасибо, попробую по другому сделать.
Аноним 25/02/15 Срд 12:06:35 #45 №442070 
>>442068
ебани еще 1 таблицу с
post_id и user_id и хуярь туда лайки
Аноним 25/02/15 Срд 12:26:31 #46 №442083 
>>441864
http://viget.com/extend/8-insanely-useful-activeadmin-customizations
Может вот эта хрень под пунктом 3 тебе поможет как-то..
Аноним 25/02/15 Срд 15:15:20 #47 №442180 
>>441891
Ну ты спросил. Как отличить хохла от бульбаша? Как отличить кучу говна от php?
Аноним 25/02/15 Срд 15:16:22 #48 №442181 
>>442049
Все правильно зделол. Изучи сначала основы CRUD и background tasks. В 4.2 говорят завезли background tasks изкаропки.
Аноним 25/02/15 Срд 16:15:39 #49 №442226 
14248701399340.jpg
Вот скажем написал я метод для объекта Хэш, как бы мне его сохранить для дальнейшего использования?
Например, вот это
class Hash
def reverse_merge!(other_hash)
self.merge!(other_hash) { |key,left,right| left }
end
end
Аноним 25/02/15 Срд 16:50:18 #50 №442254 
>>442181
Есть теория, что всё, что в руби-мире начинается с "Active" - кривое говно, лол.
Аноним 25/02/15 Срд 16:53:53 #51 №442257 
>>442254
Примеры?
Аноним 25/02/15 Срд 17:02:37 #52 №442265 
>>442257
ActiveAdmin и ActiveModel, например.
inb4: работа с ошибками - то ещё "удовольствие"
Аноним 25/02/15 Срд 17:09:39 #53 №442270 
>>442265
В чем заключается говнявость? Не могу понять тебя никак.
Аноним 25/02/15 Срд 17:34:49 #54 №442283 
>>442270
Попробуй добавить пачку кастомных ошибок в ошибки модели.
Аноним 25/02/15 Срд 21:53:25 #55 №442424 
>>442035
>>442083
Cпасибо, аноны, натыкался на эти статьи, когда искал решение из коробки, но кажется придется разбираться глубже и пилить свое.

А что вы используете когда вам нужно создать админку? Я сейчас больше склоняюсь к решению не юзать гемы-админки, а просто писать самому, потому что функционал админок обычно универсален и переходит из проекта в проект, его не так сложно перекопипастить. Возможно как больше раскурюсь в идеалогии и хороших практиках, проще будет написать свои генераторы.
Аноним 25/02/15 Срд 22:29:26 #56 №442447 
>>442283
А чем заменить ActiveModel?
Аноним 25/02/15 Срд 22:31:54 #57 №442450 
>>442283
Конечно ничем, просто запилить нормальные ошибки, без "диктатуры модели".
Аноним 25/02/15 Срд 22:32:14 #58 №442451 
>>442447
>>442450
Аноним 25/02/15 Срд 23:36:13 #59 №442481 
Посноны, скажите, вот я хочу стать рельсовиком. На каком уровне и где мне нужно учить смежные технологии, вроде html/css, js/jquery, ajax, boostrap? Нужно ли задрачивать всё это, или можно обойтись самыми базовыми знаниями, или даже чтением документации впоследствии?
Аноним 26/02/15 Чтв 11:11:07 #60 №442585 
>>442481
Двачую вопрос. Вообще не хочу лезть в болото фронтэнда.
Есть ли какие-то инструменты, позволяющие исключить это? Навесить какой-то шаблон и сосредоточиться на бэкэнде?
Аноним 26/02/15 Чтв 13:54:19 #61 №442632 
>>442585
Либо ты херачишь фронтэнд, либо нет. Зависит от места работы. Если работаешь на себя, то нанимаешь себе фронтэндера. Если работаешь на компанию, уточняешь при приёме, чем хочешь заниматься. Только никому не говори что НЕ УМЕЕШЬ во фронтэнд, обоссут и выгонят.
Аноним 26/02/15 Чтв 14:21:47 #62 №442643 
>>442226
http://pastebin.com/yKJmbnZt
Аноним 26/02/15 Чтв 15:21:56 #63 №442671 
>>442632
>Только никому не говори что НЕ УМЕЕШЬ во фронтэнд, обоссут и выгонят
Пускай сами себя обоссут. Не дело программиста выдрачивать расположение кнопочки в разных браузерах.
Аноним 26/02/15 Чтв 15:24:08 #64 №442673 
>>442643
Чем это отличается от первой реализации?
Аноним 26/02/15 Чтв 16:20:42 #65 №442702 
>>442671
>выдрачивать расположение кнопочки в разных браузерах.
Это верстка, а не фронтенд. Фронтенд нынче включает в себя любую логику, которую ты не хочешь отправлять на сервер по тем или иным причинам. Что не отменяет того что ты должен уметь хорошо верстать.

Логика уровня "не хочу рулить, хочу только педали нажимать!".
Аноним 26/02/15 Чтв 16:22:58 #66 №442703 
>>442702
Окей. Можно как-то избавить себя не от всего фронтэнда, а хотя бы от вёрстки, взвалив её на какой-нибудь bootstrap?
Аноним 26/02/15 Чтв 16:51:48 #67 №442721 
>>442673
>как бы мне его сохранить для дальнейшего использования
Тем что сохранено для использования.
Или ты собрался добавлять этот метод в MRI?
Аноним 26/02/15 Чтв 16:52:12 #68 №442723 
>>442703
Если только Bootstrap это имя человека.
Аноним 26/02/15 Чтв 17:44:09 #69 №442767 
Как научиться верстать быстро и легко? Онлайн-говно типа codeacademy пробовал, но не понравилось, слишком медленно и рассчитано на тупых.
Аноним 26/02/15 Чтв 18:09:58 #70 №442789 
14249633989860.jpg
>>442767
К тёмным таинствам вёрстки царской дороги нет.
Аноним 26/02/15 Чтв 18:35:28 #71 №442809 
>>442703
Ну так взвали её на bootstrap. Сиди себе, hamlы пили.
Аноним 26/02/15 Чтв 18:56:04 #72 №442830 
>>442809
Да я просто вообще не в курсе ни про Bootstrap, ни про что-либо подобное. Я спрашиваю вообще возможно ли такое?
Аноним 26/02/15 Чтв 18:58:41 #73 №442832 
>>442767
treehouse попробуй, там вроде две недели бесплатно можно.
Аноним 26/02/15 Чтв 19:10:49 #74 №442854 
>>442830
Вообще да, но в данный момент нет.
Аноним 26/02/15 Чтв 19:14:42 #75 №442866 
s.gsub! /\s(http:\/\/.?\.(png|jpg))\s/
ну епт вашу. уже использую чужой регексп, но все равно он не работает. Надо чтобы строка с картинкой превращалась в картинку.
def url_to_img(s)
s.gsub! /\s(http:\/\/.
?\.(png|jpg))\s/,
'<p><img src="\1/" class="img-responsive"></p>'
s.html_safe
end
Аноним 26/02/15 Чтв 19:47:32 #76 №442899 
>>442866
Вместо ? попробуй * использовать. Но я нюфак в регекспе, так что может не сработать.
Аноним 26/02/15 Чтв 19:48:47 #77 №442900 
/\s(http:\/\/.*?\.(png|jpg))\s/ test
Аноним 26/02/15 Чтв 20:37:24 #78 №442928 
Привет анон, есть юзер, у юзера есть задания, есть юзер с ролью админа.
Админ должен накидывать задания юзерам, что можно посмотреть на эту тему?
Как реализовать накидывание заданий админом?
Юзеры реализованы с помощью devise.
Аноним 26/02/15 Чтв 20:57:12 #79 №442940 
>>442928
Делаешь таблицу "задания", в которую добавлять задания может только админ. К юзеру добавляешь колонку task_id.
Аноним 26/02/15 Чтв 20:59:41 #80 №442943 
>>442940
Не, нихуя, тогда у юзера будет только одно задание. Нужно наоборот к задачам добавить user_id.
Аноним 26/02/15 Чтв 21:00:30 #81 №442945 
>>442940
А если юзер может сам тоже добавлять задания, что сейчас он и может, но мне нужно добавить админа, который может накидывать им ещё и свои задания.

Сейчас есть User и Task, я не могу разобраться как это сделать во вьюхах и контроллерах.
Аноним 26/02/15 Чтв 21:51:14 #82 №442971 
>>442945
Для распределения ролей есть гем cancancan.
Аноним 26/02/15 Чтв 21:54:22 #83 №442972 
>>442971
Я юзаю его, сделал что-то типа "если админ, может добавлять", но как теперь это во вьюхе и контроллере правильно сделать?
Аноним 26/02/15 Чтв 21:55:08 #84 №442973 
Вы не судите строга, я только начинаю познавать прелести рельсов.
>>442972
Аноним 26/02/15 Чтв 22:08:56 #85 №442980 
>>442972
В ability прописать
if user.role=='admin'
can :manage, Tasks
else if
can :read, Tasks
end

и потом во вьюхе где надо добавлять таски к пользователям
button_tag new_task_path if can? :manage, @task
с синтаксисом могут быть ошибки, писал на память.
Аноним 26/02/15 Чтв 22:15:24 #86 №442982 
Ну или проще без cancancan'ов сделать скаффолд, доступ к которому имеет только админ. Роли нужны если уровней доступа больше чем два.
Аноним 26/02/15 Чтв 23:43:30 #87 №443037 
Короче, сделал эту хуйню, хоть мне и стыдно за говнокод.
Теперь надо вьюху нормально сверстать, чтобы не поуебански было.
Аноним 27/02/15 Птн 02:28:29 #88 №443122 
Блядь, анон, как передать юзер айди постом в другой контроллер?
Аноним 27/02/15 Птн 07:47:45 #89 №443191 
>>442830
Можно. Даже гем есть такой bootstrap-sass.
Аноним 27/02/15 Птн 07:49:33 #90 №443192 
>>442943
has_many :tasks
Аноним 27/02/15 Птн 09:18:17 #91 №443208 
>>442671
Т.е. ты ещё даже не программист, а уже решаешь где "дело", а где "не дело" и воротишь нос? Умерь пыл.
Аноним 27/02/15 Птн 11:30:45 #92 №443265 
>>443122
redirect_to ?
Аноним 27/02/15 Птн 11:56:41 #93 №443278 
>>442809
А с бутстратом типа не нужно css пердолить, ахахха. Паддинг, марджин, текст-центр, фу блядь, петушиный стэк.
Аноним 27/02/15 Птн 13:57:57 #94 №443380 
>>443265
Он просто редирекнет, а мне надо чтобы post в /user/:user_id/tasks создавал таск для :user_id используя контроллер тасков.
Местами я дебил.
Аноним 27/02/15 Птн 14:36:47 #95 №443400 
>>443380
hiddent_tag :user_id
Аноним 27/02/15 Птн 16:07:00 #96 №443450 
>>443380
Что за хуйню означает "используя контроллер тасков"?
Если хочешь чтобы /user/id/tasks вёл на контроллер тасков - установи в роутах контроллер тасков.
Аноним 27/02/15 Птн 16:17:18 #97 №443456 
>>443450
Короче, суть проблемы, есть Юзер, есть Таски.
Юзер может создавать таски /tasks/ которые видны только ему и никому больше.
Есть юзер который admin?, он имеет возможность заходить на страницы тасков других юзеров по /user/:id/tasks/ и создавать для этого конкретного юзера таск, у меня он создаёт таск таким образом только для себя, в create экшене @task.user = params[:user_id] || current_user.
Где, я, что-то сделал не так?
Аноним 27/02/15 Птн 16:18:58 #98 №443458 
Наверное вы сейчас подумаете, что /user/:id/ != params[:user_id], я опечатался просто. В роутах /user/:user_id/tasks
>>443456
Аноним 27/02/15 Птн 21:58:56 #99 №443592 
Я создаю миграцию в 13:10 местного времени, применяю её. Делаю какую-то работу, отправляю в репозиторий.
В это время замечаю, что коллега создал миграцию в 13:05. Запустится ли она, если я напишу rake db:migrate? Ведь в моём файле schema.rb таймштамп уже другой, больше, чем на миграции коллеги. Как рельсы решают эту проблему?
Аноним 28/02/15 Суб 00:18:46 #100 №443653 
>>443456
if current_user.admin? && params[:id] != current_user.id
@task.user = current_user
else
@task.user = User.find(params[:id])
end

Чем не вариант?
Аноним 28/02/15 Суб 02:56:20 #101 №443700 
>>443592
А какая разница что в схеме? Она каждый раз новая генерится. Всё там нормально, выполненные миграции записываются в таблицу schema_migrations. Если какой-то миграции в таблице нет, она выполняется.
Аноним 28/02/15 Суб 08:12:33 #102 №443719 
>>443653
Про это я знаю, просто у меня была проблема, что из другого контролера который отвечает за /user/:user_id/task
Я не мог передать в форму :user_id
Если кому-нибудь интересно, то решилось просто использованием locals: в рендере
Аноним 28/02/15 Суб 13:36:56 #103 №443772 
Парни, скажите, вот я хочу учить ror, но знакомый говорит что нужно учить node.js, так как он полностью в скором времени убьет ror. Это правда, или пиздит? Чем этот нод жи эс лучше рельсов?
Аноним 28/02/15 Суб 14:51:54 #104 №443792 
14251243144440.jpg
>>443772
Я тоже так думал, да вот только затишье в этом нод жс, одни проблемы разве что, метеор как то тухло идет, да и всеобщий ажиотаж притих, через 2-3 годика посмотрим. А пока лучше рельсы.
%мимо прошареный оп жс трендов%
Аноним 28/02/15 Суб 16:54:40 #105 №443829 
>>443792
Лол, что ж ты так? А как же асинхронность, простота и скорость, вот это всё?
Аноним 28/02/15 Суб 18:09:22 #106 №443854 
>>443829
да фиг знает, для некоторых задач сразу падает глаз на нод жс, типа парсера или чатека, ты сам то используешь его в деле?
Аноним 28/02/15 Суб 18:30:28 #107 №443869 
Уважаемы рубисты, стоит ли сейчас к вам вкатываться? До этого дрочил c#, но асп.нет как-то отбил все желание. Обладаю знаниями профессионального хелоу вордщика, во всем остальном почти что полный ноль, но присутствует желание и время.
Аноним 28/02/15 Суб 18:34:09 #108 №443870 
>>4438699
Аноним 28/02/15 Суб 18:51:41 #109 №443877 
>>443870>>443869
Аноним 28/02/15 Суб 18:52:28 #110 №443879 
>>443877>>443870>>443869


Аноним 28/02/15 Суб 20:24:34 #111 №443917 
>>443854
Конечно нет. После рельс мне всё ясно с нодой. Только парсеры и чатеки, да, и то не всегда.
Аноним 28/02/15 Суб 20:25:36 #112 №443919 
Поясните за эту хуйню:
ERROR: While executing gem ... (Gem::RemoteFetcher::FetchError)
SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (https://api.rubygems.org/specs.4.8.gz)

Почему всё никак не починят это говно? Могу ли я сам как-нибудь это починить?
Аноним 28/02/15 Суб 20:29:02 #113 №443921 
>>443919
Первый раз вижу такое. Шиндошс что ли?
Аноним 28/02/15 Суб 20:30:38 #114 №443922 
>>443921
Да. При
gem update --system
Мне нужно SASS поднять для проекта, а с этим ебучим руби какие-то проблемы. Раньше я пофиксил это заменив сертификат на левый из интернета, но теперь не могу найти это.
Аноним 28/02/15 Суб 20:32:46 #115 №443925 
>>443922
>SASS
Ну дык на ноде и галпе запили, зачем мозги парить? И систему смени.
Аноним 28/02/15 Суб 20:35:27 #116 №443927 
>>443925
Компасс надо установить. Так бы я с радостью.
Аноним 28/02/15 Суб 22:46:32 #117 №443969 
14251527924440.png
Objective-C-блядок в треде. Заметил, что многие крутые инструменты вдохновлены рубиблядками (CocoaPods, Reactive Cocoa и прочие), в связи с чем решил слегонца подглянуть в ваш мир. Для каких целей ещё может подойти Ruby, кроме веб-хуиты на рельсах? Я так понял, что веб-кровлеры и дата-майнеры, что ещё? Есть какие-нибудь материалы, рекомендованные уже более-менее опытным разработчикам из смежных отраслей или проще сесть сразу писать с документацией? И ещё, какие IDE для OS X и для Win хороши и чем?
Аноним 28/02/15 Суб 22:48:59 #118 №443972 
>>443854
А почему парсеры на ЖСговне удобно писать? Вы ебанулись?
Аноним 01/03/15 Вск 00:03:24 #119 №444010 
>>443969
Привет, можешь подсказать, почему когда я ставлю брейкпоинт на - (BOOL)splitViewController:(UISplitViewController )splitViewController collapseSecondaryViewController:(UIViewController )secondaryViewController ontoPrimaryViewController:(UIViewController *)primaryViewController то он не вызывается ни при каких обстоятельствах если дебаг идет с ipad и вызывается в самом начале работы приложения если таргет - айфон. На коллапсы, разколлапсы во время работы эта херня не реагирует в обоих случаях.
Аноним 01/03/15 Вск 00:48:42 #120 №444023 
>>443972
Кто ебанулся? Ты ебанулся. Потому что есть headless браузеры, зомбижс и т.п. На любой другой параше будешь охуевать с регекспами и обосрешься, когда окажется, что на страницу не загружается ничего кроме body.
Аноним 01/03/15 Вск 01:55:29 #121 №444043 
>>444010
А эта хуита так и должна работать.
>This method is called when a split view controller is collapsing its children for a transition to a compact-width size class. Override this method to perform custom adjustments to the view controller hierarchy of the target controller.
Т.е. один раз при запуске ты можешь какую-нибудь дополнительную хуиту со своими контроллерами сделать чисто для айфонов, а для айпэдов метод не вызывается, ибо не compact-width (а на iPhone 6+ compact-width считается только в портретном режиме, поэтому при изменении ориентации и смене режима отображения с full на compact в 6+ этот метод тоже вызывается).
Если ты хотел, чтобы панелька со старта отображалась, задай сплитвью такую штуку
>splitViewController.preferredDisplayMode = UISplitViewControllerDisplayModeAllVisible;
Если что-то особенное сделать хотел, просто cmd+клик по UISplitViewControllerDelegate, там описание всех делегатных методов в .h понятное, даже в документации рыться не нужно. За это я, блядь, люблю Apple.
Аноним 01/03/15 Вск 03:27:17 #122 №444065 
Я правильно понимаю, что на Ruby есть смысл писать только web и мобильные приложения, а на десктоп нет пути?
Аноним 01/03/15 Вск 08:30:13 #123 №444102 
14251878138320.png
Тем временем в Украхе. 26 вакансий, и все на сеньоров. Самый невостребованный язык. Я без понятия, как удачно вкатиться сюда.
Аноним 01/03/15 Вск 09:08:36 #124 №444103 
>>444102
Перекатыйвайся ко мне в Бульбингем, рубинашя. Тут такая же Украха, только пидорахенов меньше гораздо и всё поспокойнее, ну и уровень жизни чуть выше.
http://jobs.tut.by/search/vacancy?only_with_salary=false&specialization=1&area=1002&clusters=true&text=ruby&salary=&currency_code=BYR
Аноним 01/03/15 Вск 09:37:52 #125 №444107 
>>444103
Минск вроде оче дорогой город, Киев по доступней будет?
Аноним 01/03/15 Вск 10:05:50 #126 №444118 
>>444107
Да говно то, минск – гетто коммиблочное. Не даром там переселенцы украинские толпами вешаются на камеру.
Аноним 01/03/15 Вск 11:14:34 #127 №444134 
Даже в ДС джуном не устроиться, о чем вы говорите.
Аноним 02/03/15 Пнд 00:09:10 #128 №444554 
>>444134
Это вы пиздите.
Аноним 02/03/15 Пнд 04:20:05 #129 №444604 
Заруби руби
Аноним 02/03/15 Пнд 11:27:16 #130 №444661 
>>444134
А зачем устраиваться?
http://freelansim.ru/tasks?q=[ruby][rails]
https://freelance.ru/projects/?cat=4&spec=453
Плюс весь список заказов где ты сам можешь предложить решение.
Аноним 02/03/15 Пнд 12:24:43 #131 №444676 
>>444661
Хуже фрилансора только сеошник.
Аноним 02/03/15 Пнд 13:02:12 #132 №444690 
>>444676
Т.е. тебе обязательно работать на контракте , но при этом вакансий мало.
Вполне себе по-русски. Ныть о том что всё хуёво, денег мало, но я честный человек, а те кто получают много - воруют.
Аноним 02/03/15 Пнд 13:07:28 #133 №444692 
>>444690
Я тут не ныл, ныли другие, прост сказал что думаю о фрилансорах.
Аноним 02/03/15 Пнд 15:37:23 #134 №444771 
>>444661
И какие проекты здесь для джуна?
И кто согласится дать мне доработать, когда у меня нет портфолио?
Аноним 02/03/15 Пнд 17:45:19 #135 №444851 
>>444661
>Rails4, Angular, CoffeeScript, Slim, Sass, Git, Capistrano, Unicorn (в планах уйти в Puma) - рандомный реквест по ссылкам.

Бля, похоже, за этим никогда не угнаться. Ёбаный табун постоянно меняющихся утилит и технологий. Как вы успеваете за ними следить?
Аноним 02/03/15 Пнд 17:50:18 #136 №444852 
Рубисты, срочно, руби - лисп?
Аноним 02/03/15 Пнд 17:52:01 #137 №444853 
>>444851
>Capistrano
Только с вот этим не знаком

МимоПХП-макака
Аноним 02/03/15 Пнд 17:53:11 #138 №444854 
>>444852
Нет)))))
Аноним 02/03/15 Пнд 18:16:53 #139 №444865 
>>444851
В этом списке больше половины не менялось в течение последних 5 лет.
Аноним 02/03/15 Пнд 18:38:06 #140 №444871 
>>443278
Че? Там все предефайнено. Даже text-center есть, хоть в h1 пихай, хоть в пизду своей мамаши шлюхи
Аноним 02/03/15 Пнд 18:47:05 #141 №444875 
>>444661
за последний месяц 3 проекта. не густо. одеск тоже не густо.
Аноним 02/03/15 Пнд 19:47:35 #142 №444899 
14253148554120.jpg
Вопрос по ajax. Я добавляю пост через ajax, и сразу же хочу его удалить, но он не удаляется, удаляются только старые посты. Нужно перезагрузить страницу чтоб удалить самый свежедобавленный. Как пофиксить? Посмотреть можно тут https://vkontanke.herokuapp.com/
Аноним 02/03/15 Пнд 20:47:01 #143 №444919 
У меня проблема, пацаны.

Я прочитал несколько книг по руби, рельсам, хорошему коду. Потом подписался на разные рассылки и блоги, мониторю рубифлоу. И что я вижу там? 10% контента это анонсы гемов (часто в таком формате, как будто подразумевается, что ты их покупаешь), ещё 10% - разная информация, например, о конференциях, иногда полезная. В оставшуюся долю входят различные переложения и мнения о книгах, которые я уже прочёл, либо гайды для новичков, обсосанные сто раз (как деплоить, как создать модель, как сделать автозагрузку кода из либ - и всё это переписывается с каждой версией рельс или руби).

Чтобы было понятнее, вот сегодняшний пример:
http://designisrefactoring.com/2015/03/01/refactoring-two-ways/
Почти дословный пересказ одной из глав книги "Рефакторинг, руби эдишн", написанный с не совсем ясно целью.

Откуда ещё можно черпать свежую информацию, посоны?
Аноним 02/03/15 Пнд 21:21:17 #144 №444934 
>>444919
Есть и другие языки программирования. Scala, Erlang, C#... черпай оттуда.
Аноним 02/03/15 Пнд 22:03:28 #145 №444946 
>>444919
Какого рода информацию?
Аноним 02/03/15 Пнд 22:14:50 #146 №444952 
>>444865
Хм. Спасибо, успокоил.
Пойду изучать.
Аноним 02/03/15 Пнд 23:57:40 #147 №444983 
14253298603900.png
>>444919
Ахахах, рубиблядок, что ты делаешь, перестань
Аноним 03/03/15 Втр 09:13:04 #148 №445025 
>>444899
Не смотрел, но уверен что стандартная трабла - на подгруженные элементы не распространяется событие жс.

Нужно после загрузки элементов ещё раз вызвать функцию. Недавно тоже с этой хуйней боролся

Мимопхп-макака
Аноним 03/03/15 Втр 10:12:41 #149 №445033 
>>445025
Событие нормально вешать надо просто.
Аноним 03/03/15 Втр 13:16:17 #150 №445090 
>>444851
Rails.4
Ты сильно угоняешься за тем, как меняется спека твоего языка? Если для тебя это проблема - значит дело хуёво.
> Angular
Очередной фронтовый инструмент.
> CoffeeScript
Синтаксический сахар над JS для рубистов
> Slim
Шаблоны
> Sass
Фронтовый инструмент
> Git
Без комментариев
> Capistrano
Без комментариев
>Unicorn
Половина твоих удивлений это негодование уровня
"как вы успеваете читать changelog <insert language name>".
Аноним 03/03/15 Втр 14:42:50 #151 №445115 
>>444851
>Бля, похоже, за этим никогда не угнаться. Ёбаный табун постоянно меняющихся утилит и технологий. Как вы успеваете за ними следить?
А я и не успеваю. И мне похуй, что я не знаю всех фишек.
Аноним 03/03/15 Втр 17:07:06 #152 №445170 
14253916261260.png
Почему все так упорно используют этот рспек, когда юнит-тест такой простой и няшный. Не уже ли вам нравится писать лапшу вроде
expect(hui).to eql('hui') или как там его
вместо
assert_equal 'hui', hui
неужели так приятно изголяться с макросами и каким-то shared_examples когда можно просто включить модуль
пикстронглирелейтед
Аноним 03/03/15 Втр 17:24:09 #153 №445177 
>>445170
>assert_equal 'hui', hui
>Убедиться, что равно хую, hui
Как-то neudobno в стиле йоды разговаривать.

>неужели так приятно изголяться с макросами и каким-то shared_examples когда можно просто включить модуль
Какой модуль?

В целом для рспека, наверное, больше всяких специфических примочек, но подробно я не копал.
Аноним 03/03/15 Втр 23:48:37 #154 №445316 
Рубаны, как сейчас обстоит дело с дружением RoR и Windows? Читал статьи про установку рельс на винду, и везде пишут, что нужно юзать линух, т.к. винду разработчики на рельсах слабо поддерживают. Но эти статьи 3-4 годичной давности.
Что с поддержкой винды сейчас? Можно ли нормально кодировать сайт легкой-средней сложности на рубях по виндусом? Смогу ли я потом свой проект демонстрировать на других машинах, или даже запускать на реальном хостинге?
не_разбираюсь_в_вебпрограммировании_и_линухе
Аноним 03/03/15 Втр 23:53:28 #155 №445320 
>>445316
https://www.google.com/search?q=vagrant+rails+windows
Аноним 04/03/15 Срд 00:02:49 #156 №445322 
>>445316
Ставь линукс.
В шапку уже запишите про ОС 1-м пунктом.
Аноним 04/03/15 Срд 10:50:55 #157 №445407 
>>445316
2015
@
программировать на винде

Как ответили выше у тебя два стула: вагрант точеный либо линукс дроченый. Куда рельсы поставишь? Какую систему оставишь?
Аноним 04/03/15 Срд 11:21:42 #158 №445410 
>>445170
Рспек лучше читается.
>subject { Model.new }
>its(:attr1) { is_expected.to eq(1) }
Аноним 04/03/15 Срд 20:56:04 #159 №445611 
>>445320
>>445322
>>445407
Окей, спасибо за ответы; попробую сначала вагрант (пока еще не особо понял что это), если не покатит, то придется ставить линукс
Аноним 04/03/15 Срд 23:04:08 #160 №445689 
http://pastebin.com/LyQYkgPT
Указывайте на ошибки. Пишу первый раз. Сейчас сервера антигейта под нагрузкой и капчу могут так и не разгадать.
Аноним 04/03/15 Срд 23:41:33 #161 №445712 
>>445689
Ты спалил свой ключ
Аноним 04/03/15 Срд 23:42:01 #162 №445713 
>>445712
Оставил для ТЕСТИРОВАНИЯ, ну.
Аноним 05/03/15 Чтв 00:49:12 #163 №445730 
>>445689
Ошибок как таковых не видел, но

1.
>if parameters
> raise ArgumentError, "parameters should be >hash" unless parameters.kind_of?(Hash)
>end
Что это за хуйня вообще?
Кто мешал сделать однострочный if parameters.present? || parameters.kind_of?(Hash)

Множественные return в теле - плохая практика.

>sleep 5
Это вообще пизда. Полная блокировка контекста.

Используй Fibers и continuations для отложенных вызовов без блокировки контекста.
Аноним 05/03/15 Чтв 00:49:43 #164 №445731 
>>445611
>то придется ставить линукс
Поставь VirtualBox и не еби мозги.
Аноним 05/03/15 Чтв 11:56:01 #165 №445867 
http://pastebin.com/ycS1q703
Как сделать лучше?
Аноним 05/03/15 Чтв 12:19:33 #166 №445878 
>>445867
Вынести ссылку в хелпер и вызывать с ключом типа = social_link :twitter
Аноним 05/03/15 Чтв 13:20:57 #167 №445908 
>>445867
http://pastebin.com/K57wjwZ6
Аноним 05/03/15 Чтв 13:26:13 #168 №445911 
>>445878
>>445908
Спасибо!
Аноним 05/03/15 Чтв 15:03:12 #169 №445976 
14255569929930.png
>>445689
Доебался до всего.
Пришлось обрезать, чтобы влезло в макабу. В целом норм, ты молодец.
Аноним 05/03/15 Чтв 15:09:32 #170 №445983 
14255573721030.jpg
Анонасы, запили mailboxer сюда https://vkontanke.herokuapp.com/
Для полноценного чатека без рефреша туда нужны вебсокеты, а не ajax?
Аноним 05/03/15 Чтв 16:51:09 #171 №446050 
Ребят, подскажите, почему юзер может быть не залогинен в websocket_rails контроллере? В остальных контроллерах current_user и user_signed_in? работают правильно. Куда копать? Eсли что использую devise
Аноним 05/03/15 Чтв 17:11:53 #172 №446063 
Почаны, решил запилить полное тестирование(нагрузочное, модульное, интегральное и все все) для приложения на ror. В идеале нужно чтобы приложение автоматически тестировалось перед билдом, например, в результате чего составлялся ебаотчет и этот отчет отправлялся бы на почту. Инфы нашел не так много как хотелось бы. На что стоит обратить внимание, рубаны? RSpec + Capybara + разные примочки или посмотреть в сторону Selenium? Накидайте еще годных инструментов для тестирования ror приложений.
Аноним 05/03/15 Чтв 18:44:09 #173 №446102 
>>445976
Спасибо, учту.

Алсо >Какой из методов, HTTParty.get или build_url, принимает хэш в качествк второго аргумента?
Очевидно, что build_url. Если бы HTTParty.get принимал в данном случае второй аргумент, то тут без скобок уже не обойтись. Не люблю скобки, хоть и расставлять их для лучшей читаемости полезно, пожалуй.
Аноним 05/03/15 Чтв 18:57:56 #174 №446109 
>>446102
Ты будешь публиковать это в качестве гема или для себя пишешь?
Аноним 05/03/15 Чтв 19:01:08 #175 №446113 
>>446109
Собирался изначально. Пожалуй, опубликую, как перепишу.
Аноним 05/03/15 Чтв 19:02:08 #176 №446114 
>>446113
Опубликуй так, хочу посмотреть, как ты отрефакторишь :3
Аноним 05/03/15 Чтв 19:04:53 #177 №446118 
>>446114
Ах да, еще такой вопрос. Как в таком случае тесты писать? Ведь для выполнения хоть каких-либо запросов нужен валидный ключ.
Аноним 05/03/15 Чтв 19:06:44 #178 №446119 
>>446118
VCR, fakeweb
Аноним 05/03/15 Чтв 19:10:18 #179 №446120 
>>446119
Но в чем тогда смысл таких тестов? И вообще, ведь если кто-либо публикует гем, предполагается, что он протестировал все как минимум вручную.
Аноним 05/03/15 Чтв 19:18:59 #180 №446126 
>>446120
Фейквеб спорное решение, как по мне.

VCR записывает запросы, которые ты делаешь, затем воспроизводит. Используя его, ты как минимум будешь уверен, что приложение не делает лишние реквесты и реагирует как положено на известные ответы сервера.
Аноним 05/03/15 Чтв 19:20:25 #181 №446127 
>>446126
Ну хорошо.

А для записи логов какой гем порекомендуете? А то писать все в stdout - как-то не оче.
Аноним 05/03/15 Чтв 19:23:39 #182 №446129 
>>446127
Logger позволяет писать в файл:
http://docs.ruby-lang.org/en/2.2.0/Logger.html
Аноним 05/03/15 Чтв 21:34:00 #183 №446182 
Есть софт под шиндовс, отправляющие гет-запросы на определенный урл. В какую сторону гуглить, чтобы средствами Руби подменить ответ?
Аноним 05/03/15 Чтв 21:34:19 #184 №446183 
>>446182
>отправляющий
Аноним 05/03/15 Чтв 21:42:55 #185 №446189 
>>446182
Думай для начала о том, как будешь айли сессии перехватывать, мамкин хакер.
Аноним 05/03/15 Чтв 22:08:42 #186 №446202 
>>441544
Смотрю я тут что-то на руби, и мне немного хуевато от его применимости. Я уже 3 года херачу круды на рельсах и прочие околоштуки. Платят хорошо, работа не пыльная. Рельсы - удобная штука, как ни крути.

Но блять, какие есть перспективы? Взять прогромистскую вакансию в любой конторе более-мене е известной: нужды плюсовики (на всякие тяжёлые штуки), нужны питонисты (скрипты-хуепты), нужны джависты и дотнетчики в махровый ынтырпрайз. Даже жаваскрипт-фронтендеры нужны, потому что без фронтэнда все будут хуй сосать.

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

Меня моя позиция пока устраивает, но иногда поглядываю на вакансии всяких Ораклов, Интелов и прочих Майкрософтов и думаю, что в более долгосрочной перспективе я буду сосать хуйцы.

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

Кто виноват и что делать? Был у кого опыт перехода с одного стека на другой? Ruby -> Python и Java -> .NET не считаются.
Аноним 05/03/15 Чтв 23:24:29 #187 №446226 
>>446202
запили свой стартап, очевидно же
Аноним 05/03/15 Чтв 23:33:21 #188 №446230 
>>446226
Думаю об этом. Но стандартная схема "заебенить стартап -> продать это говно поскорее -> заебенить следующий" у нас не будет работать.
Аноним 05/03/15 Чтв 23:52:28 #189 №446234 
>>446202
>А что же у рельсов? Какие-то стартапы, хуяпы, компании, занимающиеся хуй пойми чем.
Нужны бэкендеры, потому что без бэкенда все будут хуй сосать.

Не понял, что не так в долгосрочной перспективе. Как раз именно в ней рубям нет альтернатив, интернет не заканчивает развиваться, а такого проработанного окружения, как на руби - в вебе нет вообще нигде. Только-только подбираются кое-как всякие недоделки типа пхп и жсов, и всё равно не могут, потому что изначально калеки. Скажи просто, что тебе надоело дрочить одно и то же/хочется неизведанного байтоебства/чувствуешь, что это "ненастоящее" программирование.
Аноним 06/03/15 Птн 00:19:02 #190 №446246 
>>446234
>Скажи просто, что тебе надоело дрочить одно и то же/хочется неизведанного байтоебства/чувствуешь, что это "ненастоящее" программирование.

Ну так да, это и говорю. Просто плохо сформулировал :D
Аноним 06/03/15 Птн 00:22:42 #191 №446250 
>>446246
Хотя нет, не только. Ещё комплекс неполноценности из-за работы на/в ноунейм конторы, которые не делают нихуя интересного/важного/пафосного.

К самим рельсам и руби самим по себе у меня претензий нет - заебись фреймворк, отличное комьюнити, нормальный язык.
Аноним 06/03/15 Птн 00:26:54 #192 №446254 
>>446202
>Кто виноват и что делать?
Пришлось по проекту разбираться в Node.js. Сейчас разбираюсь в Go.
Аноним 06/03/15 Птн 12:12:21 #193 №446340 
>>446250
>Ещё комплекс неполноценности из-за работы на/в ноунейм конторы, которые не делают нихуя интересного/важного/пафосного.
Dat feel. Как я тебя понимаю.
Аноним 06/03/15 Птн 15:21:47 #194 №446426 
>>446050
бамп вопросу
Аноним 06/03/15 Птн 23:24:03 #195 №446553 
>>446050
сделай дебаговый вывод переменной env['warden'] в теле websocket контроллеров. Есть подозрение что там отдельный стек выполнения, который может быть не связан с твоим основным приложением.
Аноним 06/03/15 Птн 23:46:27 #196 №446582 
>>446553
выдало

Warden::Proxy:70331412252480 @config={:default_scope=>:user, :scope_defaults=>{}, :default_strategies=>{:user=>[:rememberable, :database_authenticatable]}, :intercept_401=>false, :failure_app=>#<Devise::Delegator:0x007fee9e519c78>}
Аноним 07/03/15 Суб 00:14:34 #197 №446598 
>>446582
еще замечу, что проблема не стабильная, например сейчас на продакшен сервере ее нет, но у меня на локальном сервере она воспроизводится и обойти ее не могу
Аноним 07/03/15 Суб 00:24:25 #198 №446601 
>>446202
Вот именно поэтому, я из жабы собираюсь катиться в ноду.жс а не в руби.
Аноним 07/03/15 Суб 09:46:21 #199 №446699 
>>446601
>ноду.жс
лол
Аноним 07/03/15 Суб 12:28:41 #200 №446725 
Рельсовики, а расскажите как у проводится интеграционное тестирование (integration testing). Я слышал про cucumber, но не очень понимаю что он использует. Это тупо DSL к селениуму? Какой движок селениума? Быстро прогоняются тесты?
Я сам django-макака, и у нас с интеграционными тестами хуево, все ебашат юнит-тесты и всё.
Аноним 07/03/15 Суб 12:35:56 #201 №446727 
>>446725
Я возможно перепутал интеграционные и функциональные тесты, но вы поняли.
Аноним 07/03/15 Суб 13:16:57 #202 №446745 
Посоны, что такое - "круды на рельсах"?

Слышал такое слово недавно.
Аноним 07/03/15 Суб 13:18:13 #203 №446747 
>>446745
"Create Read Update Delete". Складской учёт, в общем.
Аноним 07/03/15 Суб 13:20:52 #204 №446750 
>>446747
Спасибо. А можно пример такого?
Аноним 07/03/15 Суб 13:24:02 #205 №446751 
14257238426520.png
14257238426531.png
14257238426532.png
14257238426533.png
>>446750
Вот они: 1986-1991 годы.
Аноним 07/03/15 Суб 13:44:05 #206 №446756 
14257250450300.gif
>>445410
Конечно понимаю что у всех разные фетиши но мне намного удобнее читать простой вызов метода с двумя аргументами чем "вызов метода с аргуметом и блоком в котором вызывается метод, который возвращает объект, у которого вызывается метод который принимает результат передачи моего объекта в eq)". Опечатываться в таких перлах навеное особенно весело.
Аноним 07/03/15 Суб 13:45:13 #207 №446757 
>>446756
>наверное
Аноним 07/03/15 Суб 13:54:32 #208 №446763 
>>446756
Сортировку так удобно записывать. А все вообще алгоритмы так не пишут.
Аноним 07/03/15 Суб 14:35:51 #209 №446786 
>>446751
А что-то соверменное, на ror?
Аноним 07/03/15 Суб 14:39:07 #210 №446790 
>>446751
Это что-то вроде 1С лол?
Аноним 07/03/15 Суб 14:48:40 #211 №446796 
>>446786
Формы в redmine, наверное...
>>446790
Да, картотека и телефонная книга с календариком.
Аноним 07/03/15 Суб 15:26:02 #212 №446827 
>>446786
Вакаба это круд.
Аноним 07/03/15 Суб 15:26:38 #213 №446828 
>>446725
Бампую вопрос.
Аноним 07/03/15 Суб 17:21:36 #214 №446873 
>>445316
Можно, windows ruby installer (rubyinstaller.org) под 2.1 руби + devkit настроить для билда некоторых гемов (1 минута, в доках есть), гем debugger поменять в Gemfile рельсопроекта на какой-нибудь другой, например byebug. Всё.
Аноним 07/03/15 Суб 20:10:20 #215 №446919 
Под шиндовс x64 не компилируется eventmachine-le. Ужасно.
Аноним 07/03/15 Суб 20:27:31 #216 №446928 
У какого ещё языка/фреймворка такое же няшное коммьюнити? Или хотя бы максимально приближенное?
Аноним 07/03/15 Суб 20:36:30 #217 №446931 
>>446928
>няшное коммьюнити?
На дваче разве что.
Аноним 07/03/15 Суб 20:39:34 #218 №446934 
>>446928
Objective-C / Swift - туда перекатилось много людей из Ruby
Ненавижу рубидегенератов. Аноним 07/03/15 Суб 20:53:16 #219 №446939 
Столкнувшись в очередной раз с наследием рубидебилизма в форме http://chaijs.com/ (сайт не открывается, угадайте почему? ответ: потому, что это проект рубидебилов) чаша моей ненависти переполнилась настолько, что я пришел в ваш тред из рид-онли пожелать вам рака яичек. Вы все, кто пишет на руби, вы - блядские гуманитарии безмозглые. Ваше место у параши. Убейте себя об стену. Выколите себе глаза. Но самое главное - не лезьте, слышите? Не лезьте, блядь, в другие языки программирования со своим рубиговном. Ненавижу вас. Умрите. Просто умрите. Вы не программисты, вы ёбаные виабушные гуманитарии. Блядь. Все. Пиздец.
(Автор этого поста был предупрежден.)
Аноним 07/03/15 Суб 20:55:52 #220 №446940 
>>446939
Поясняй давай, какой из "очередных" этот раз, почему мы гуманитарии и что не так с руби? Или нахуй пиздуй.
Аноним 07/03/15 Суб 21:06:38 #221 №446941 
>>446940
Потому, что это говно, chaijs, запилено рубитупицами, которые притащили его из какой-то своей виабушной параши. Затем рубиублюдки перетащили эту срань в божественный selenium webdriver, породив кондишены уровня урока русского языка в 3Б классе вроде
status.should.be.ok или, что еще хуже, status.should.eventually.be.ok
где status это true или false.

Только в забитой анимеговном голове тупого руби-идиота могла родиться идея к четким понятиям true и false добавить какое-то ебучее покрытое гноем и прыщами ok. Только червяки из суши-бара могли настолько выесть мозг рубидауну, чтобы условие могло быть eventually. И только пучеглазые рубиговноеды могли, засрав webdriver своим хипстерским говном, отправить сайт с доками в вечный даун, таким образом, что разобраться в этой азиатской сраке, которую они напиздоебошили теперь окончательно невозможно. should, блядь. shall бы ещё использовали. Уроды ебанутые. Держите свои охуетиельные руби-идеи внутри своих гетто-комьюнити для таких же выродков. Гвоздей бы вам в темечко повбивать. Сукины дети тупорылые.
Аноним 07/03/15 Суб 21:10:03 #222 №446943 
>>446939
> (Автор этого поста был предупрежден.)
Батхёрт рубидауна. Картинку верни на место, узкоглазый. Там иллюстрация к тому, что надо сделать с этим языком программирования и всеми его адептами заодно.
Аноним 07/03/15 Суб 22:02:19 #223 №446958 
>>446582
а ты как к серверу на локальной машине обращаешься?
Pow?
Аноним 07/03/15 Суб 22:04:38 #224 №446960 
>>446941
Очередная сиблядь порвалась. Мочератор - куда смотришь?
Аноним 07/03/15 Суб 22:22:41 #225 №446972 
>>446958
в смысле? не понял вопрос
Аноним 07/03/15 Суб 23:02:35 #226 №446986 
>>446960
сериал смотрю а чё?
Аноним 07/03/15 Суб 23:07:43 #227 №446989 
>>446941
С чего ты вообще решил, что chaijs на руби? Если это и так, то он либо не на рельсах, либо на очень древних рельсах.

>status.should.be.ok
Мы говорим о каких-то разных рубипродуктах. Я подобную хуйню видел только на php, selenium твой не юзал никогда. Алсо, should в rspec уже deprecated, если что. Ну и наконец, как именно мы виноваты в том, что какой-то даун написал говнокод, а ты опознал, что это руби и начал обобщать?
Аноним 08/03/15 Вск 00:22:43 #228 №447009 
>>446972
>>446958
Не знаю, что такое pow в контексте рельсов, потому скорее всего не использую
Аноним 08/03/15 Вск 00:27:08 #229 №447013 
>>447009
Ты как проверял что вебсокеты не хватают сессию?
Аноним 08/03/15 Вск 00:52:19 #230 №447023 
>>446786

Борда, на которой ты это пишешь, лол.
Аноним 08/03/15 Вск 07:56:41 #231 №447075 
14257906014640.jpg
>>446934
Заебись.

>>446928-кун-одной-ногой-в-свифте
Аноним 08/03/15 Вск 10:15:31 #232 №447093 
>>446939
Он же на ноде.
https://github.com/chaijs/chai-docs
Аноним 08/03/15 Вск 10:20:31 #233 №447096 
>>446939
да и вообще, чекнул профили https://github.com/chaijs
там все на жс/кофе пишут, рубистов среди них нема, есть даже типок c го/питон
Аноним 08/03/15 Вск 12:05:20 #234 №447117 
>>446989
> С чего ты вообще решил, что chaijs на руби?
Он не на руби, но он написан рубидебилами.

> Я подобную хуйню видел только на php
> should в rspec уже deprecated
Типичное мышление рубишизофреника. А я каждый раз видел такую хуйню, когда меня просили "посмотреть проект на руби". Из руби выползла ублюдочная практика разрабатывать школьную говноСУБД под каждый говнопроектик более чем из 10 аутистов. Mongrel, MongoDB, NoSQL-и, вот это всё. Из руби-рельсов пошла привычка делать точку входа в приложение не в форме исполняющегося скрипта, а в виде какой-то ссаной приблуды типа grunt, с кучей ебучих конфигурационных файлов, написание которых занимает примерно столько же, сколько и написание самого приложения. Типичный руби-программист представляет собою лося, который пытается распутать своими кривыми рогами клубок ниток, от чего положение этого клубка еще только больше усугубляется. Я уже видел в каком-то проекте на ноде попытку перетащить в sqlite базу практику activerecord в стиле Users - user, меня чуть не выблевало. Руби - рассадник шизофрении и дегенеративных идей в программировании. Назови мне хоть что-нибудь, хоть одно положительное явление, которое ruby привнесло в программирование? Кроме, пожалуй, практики использования @ вместо this, ничего больше нету. Лютый пиздос, прямо как на видеорилейтеде.

>>447096

> рубистов среди них нема

> John Firebaugh
> http://jfire.io/
> Open Source, Ruby, Rubinius, RubySpec, Rails.

> Jake Luer
> http://webcache.googleusercontent.com/search?q=cache:wXE5qJ1d2aEJ:ruby-doc.org/gems/docs/k/konacha-chai-matchers-0.3.0/vendor/assets/javascripts/chai-stats_js.html+&cd=5&hl=ru&ct=clnk&client=firefox
> konacha-chai-matchers-0.3.0_ruby_version.txt
> Copyright (c) 2012 Jake Luer <[email protected]>
> ruby-doc.org/gems

> Veselin Todorov
> Has open sourced 3 ruby projects

> рубистов среди них нема

Проект буквально пронизан рубимразями с ног до головы. Они пришли убивать мой теплый ламповый Node.JS.
Аноним 08/03/15 Вск 13:05:10 #235 №447137 
>>447117
Твой теплый, пылающий анус. Съебни.
Аноним 08/03/15 Вск 13:51:55 #236 №447158 
>>447117
>Из руби-рельсов пошла привычка делать точку входа в приложение не в форме исполняющегося скрипта, а в виде какой-то ссаной приблуды типа grunt, с кучей ебучих конфигурационных файлов, написание которых занимает примерно столько же, сколько и написание самого приложения.
Convention over configuration, please. Ты о таком даже не слышал ведь, уебень пиздоголовый?

>теплый ламповый Node.JS.
Ох лол, там уже до рубистов было всё проебано. А самые дегенеративные из них, которым почему-то не жилось спокойно в рубимирке, ушли именно туда. Хайподауны, что с них взять.
Аноним 08/03/15 Вск 13:57:10 #237 №447163 
>>447013
в вебсокет-контроллере написал puts user_signed_in?
внешне все нормально на сайте, кнопка выход присутствует, но когда пытаюсь сделать ставку (сайт с играми казиношными), вылазит уведомление, что нужно авторизоваться, а это как раз в вебсокет-контролллерах игр прописано
вобще я из-за этого
Аноним 08/03/15 Вск 14:12:44 #238 №447166 
>>447117
>мой теплый ламповый Node.JS
>обличает рубидебилов
ебала_жаба_гадюку.жпг
Аноним 08/03/15 Вск 14:22:14 #239 №447172 
>>447158
> Convention over configuration
Самая гнусная и мерзкая гниль, которую можно только придумать. Вместо явно передаваемого состояния - учи мемы пиздоглазые тайные соглашения, которые в каждом релизе меняются.
> Ты о таком даже не слышал ведь
Слышал. К сожалению. И ведь каким надо быть ёбнутым ублюдком, чтобы утверждать будто это что-то хорошее?
> А самые дегенеративные из них, которым почему-то не жилось спокойно в рубимирке, ушли именно туда.
Вот заберите их обратно.
> Хайподауны
Описание всего руби-комьюнити одним словом.

>>447166
Рубидебилам не понять.
Аноним 08/03/15 Вск 14:34:03 #240 №447176 
>>447172
>учи мемы пиздоглазые тайные соглашения
Спасибо, проиграл знатно! Запишу куда-нибудь.

>Вместо явно передаваемого состояния
Да тебе же в питон, нахрен ты вообще в руби лезешь? Не бери эти проекты и всё.
Аноним 08/03/15 Вск 14:41:46 #241 №447182 
>>447172
> Слышал. К сожалению. И ведь каким надо быть ёбнутым ублюдком, чтобы утверждать будто это что-то хорошее?
Тогда хули ты пиздишь про грант и конфиги? Определись уже.
Аноним 08/03/15 Вск 14:51:54 #242 №447186 
>>447176
> Да тебе же в питон, нахрен ты вообще в руби лезешь?
Так я не лезу, это они лезут.
>>447182
> Тогда хули ты пиздишь про грант и конфиги?
Грант и конфиги - то же самое соглашение, которое заключается в том, что вместо непосредственно воплощенной в программный код инициализации, приложение запускается каким-то летающим по орбите анусом странной конструкции. И самое страшное - что эта рубизараза распространяется по мозгам разработчиков все дальше и дальше.
Аноним 08/03/15 Вск 14:58:37 #243 №447189 
>>447186
Ебать дибил. Грунт - это мавен с жсоном вместо иксемеля. Как-раз таки конфигурейшон овер конвеншн. Для ценитителей подольше посидеть, понаписать рутинной хуйни вместо того чтоб посмотреть аниме или сводить школьницу в кино.
Аноним 08/03/15 Вск 15:25:34 #244 №447215 
>>447172
> Рубидебилам не понять.
Я питоняша же. Что рельсы говно, что нода, но на рельсах хотя бы не нужно обмазываться колбэками.
Аноним 08/03/15 Вск 15:26:45 #245 №447219 
Что Рубигоспода скажут по поводу http://laravel.com?
Аноним 08/03/15 Вск 15:42:40 #246 №447245 
Он просто тролль или долбанутый. Возможно оба варианта сразу. Ибо ладно он бы вылез с какой-нибудь технологии, но нода.жс, лол.

Конвешн овер конфигурейшн в рельсах сделан почти интуитивно. Все работает из коробки как надо. KISS, блядь.

>Mongrel, MongoDB, NoSQL
Намешал в кучу, MongoDB - nosql субд, mongrel тупо http сервак на руби.
Монгу используют десятки тысяч людей.
Монгрел и Вебрик на руби, а на питоне аж пять выдает вики Gunicorn, Paste, Tornado, Twisted, Zope. Так что это все херня. Вот в жс любят плодить либы, когда как на руби вся движуха вокруг парочки популярных отточенных гемов крутится обычно.

>Я уже видел в каком-то проекте на ноде попытку перетащить в sqlite базу практику activerecord в стиле Users - user
Что сказать-то хотел?


Аноним 08/03/15 Вск 15:45:58 #247 №447251 
>>447219
Наверное, один из лучших полных фреймворков на php на сегодняшний день.
Все остальное чаще либо устарело и заброшено, либо хуита.
Аноним 08/03/15 Вск 19:09:02 #248 №447380 
Товарищи рубисты, такой вопрос. Как сделать в руби анонимные классы? Я на руби перекатился с C#, там я мог делать так:
collection2 = collection1.Select(item => new { field1 = Yoba1(item), field2 = Yoba2(item) }).ToList()
Select в C# работает как map в руби. Метод выше создает коллекцию из объектов анонимного класса, имеющего два поля field1 и field2. А как сделать подобное в руби? Мне пришло в голову использовать хэши:
collection2 = collection1.map {|item| { field1: yoba1(item), field2: yoba2(item) }}
Не сильно ли от этого пострадает производительность? Вообще, как бы вы решили эту задачу?
Аноним 08/03/15 Вск 19:17:48 #249 №447383 
>>447380
OpenStruct?
Аноним 08/03/15 Вск 19:22:14 #250 №447386 
>>447380
Поля связаны между собой? Если нет, используй хеш или любую другую структуру (массив, опенстракт, сет), если да, создай класс.
Аноним 08/03/15 Вск 19:23:55 #251 №447387 
>>447383
О, спасибо тебе. Вроде то что я и имел в виду.
Аноним 08/03/15 Вск 20:02:01 #252 №447413 
>>447380
Использовал бы хэши, не разу не видел что бы для такого случая использовали классы
Аноним 09/03/15 Пнд 02:12:50 #253 №447616 
В приложении на рельсах есть много ajax запросов, мне их нужно протестировать. js код хранится в .js.erb шаблонах и там просто манипуляция с несколькими DOM-элементами. У меня уже установлена capybara, но она медленная, можно ли как-то такое протестировать с помощью mocha-chai-sinon или jasmine? Я пока плохо разбираюсь и не могу понять как запустить код в шаблонах.
Аноним 09/03/15 Пнд 02:15:15 #254 №447617 
14258565151801.jpg
Анонасы, хочу добавить возможность создавать группы как ВК.
Как такое смоделировать? user has many groups, ну, и возможность подписыватя на группы чтоб были видны посты от туда. чето у меня постоянно каша, когда пытаюсь думать над таким. пойду посплю короче, с утра лучше думается
https://vkontanke.herokuapp.com/
Аноним 09/03/15 Пнд 02:27:12 #255 №447621 
>>447617
запили omniauth лучше, не хочу я свой мастер-пароль и мыло палить на всяких сомнительных сайтах
Аноним 09/03/15 Пнд 11:05:29 #256 №447672 
>>447617
Отношение пользователь группа должно быть многие ко многим.
Аноним 09/03/15 Пнд 14:40:59 #257 №447746 
Аноны, как парсить сайты, защищенные CloudFlare? Эту же борду, например. Как понимаю, надо юзать куки, но как это реализуется?
Аноним 09/03/15 Пнд 14:55:39 #258 №447752 
>>447746
зомбижс
Аноним 09/03/15 Пнд 15:11:14 #259 №447763 
>>447746
Вроде парсил без особых проблем когда писал генератор постов в программач.
А, нет, вспомнил, я wgetом выкачал весь зк, а потом парсил из локальных файлов.
Аноним 09/03/15 Пнд 15:19:20 #260 №447773 
>>447617
В чём проблема? Группы к юзерам многие ко многим, как уже написали выше. Запили роли в группе - админ, субскрайбер, кто там ещё.
Аноним 09/03/15 Пнд 18:38:13 #261 №447859 
Учу рубин по книге "The Well-Grounded Rubyist". В книге есть такой пример: https://github.com/eleloya/the-well-grounded-rubyist/blob/master/NOTES.md
У меня он не работает. После того как ввожу Config::CONFIG["bindir"], терминал выдает "NameError: uninitialized constant Config".
В новой версии поменяли константу?
Аноним 09/03/15 Пнд 18:40:30 #262 №447862 
>>447859
Разобрался.
Нужно было писать RbConfig::CONFIG
Аноним 09/03/15 Пнд 23:15:09 #263 №448009 
>>447763
Не вариант выкачивать весь сайт.
>>447752
Как это использовать?

Разобрался, как пользоваться куки в open-uri:
open_doc = open("сайт", "Cookie" => "куки")
В итоге исключение и такой стектрейс:
C:/Ruby21/lib/ruby/2.1.0/net/http.rb:920:in `connect': SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (OpenSSL::SSL::SSLError)
from C:/Ruby21/lib/ruby/2.1.0/net/http.rb:920:in `block in connect'
from C:/Ruby21/lib/ruby/2.1.0/timeout.rb:76:in `timeout'
from C:/Ruby21/lib/ruby/2.1.0/net/http.rb:920:in `connect'
from C:/Ruby21/lib/ruby/2.1.0/net/http.rb:863:in `do_start'
from C:/Ruby21/lib/ruby/2.1.0/net/http.rb:852:in `start'
from C:/Ruby21/lib/ruby/2.1.0/open-uri.rb:313:in `open_http'
from C:/Ruby21/lib/ruby/2.1.0/open-uri.rb:724:in `buffer_open'
from C:/Ruby21/lib/ruby/2.1.0/open-uri.rb:210:in `block in open_loop'
from C:/Ruby21/lib/ruby/2.1.0/open-uri.rb:208:in `catch'
from C:/Ruby21/lib/ruby/2.1.0/open-uri.rb:208:in `open_loop'
from C:/Ruby21/lib/ruby/2.1.0/open-uri.rb:149:in `open_uri'
from C:/Ruby21/lib/ruby/2.1.0/open-uri.rb:704:in `open'
from C:/Ruby21/lib/ruby/2.1.0/open-uri.rb:34:in `open'
Аноним 09/03/15 Пнд 23:22:46 #264 №448011 
14259325667790.jpg
>>448009
>Как это использовать?
Может за тебя поесть ещё?
Аноним 09/03/15 Пнд 23:23:44 #265 №448013 
>>448011
Давай, хуйли нет.
Аноним 09/03/15 Пнд 23:59:53 #266 №448031 
>>448009
Используй Mechanize
Аноним 10/03/15 Втр 01:36:06 #267 №448049 
>>448009
>C:/Ruby21
>Как это использовать?
Не так
Аноним 10/03/15 Втр 01:42:33 #268 №448051 
14259409535050.png
Есть такой хелпер http://pastebin.com/rNjWw0iK
Но он кривой, ибо преобразует текст и ссылку в одно, а нужно только ссылку превращать в a href. Кто такое уже решал?
вот пример тут как выглядит ссылка https://vkontanke.herokuapp.com/users/1
Аноним 10/03/15 Втр 14:41:14 #269 №448234 
Парни, оцените мою программу по изучению рельсов:

1. http://www.codecademy.com/tracks/web
2. http://www.codecademy.com/tracks/javascript
3. http://www.codecademy.com/tracks/jquery
4. http://www.codecademy.com/tracks/ruby

Соответственно, в этой последовательности. Далее:

5. Книга "Purewal Semmy - Learning Web App Development"

и

6. https://www.railstutorial.org/book

Это все. Планирую затратить 3 месяца. Норм идея, или я что-то упустил?
Аноним 10/03/15 Втр 15:29:45 #270 №448240 
>>448234
Плохо. Проходи через The Odin Project и прочитай http://everydayutilitarian.com/essays/notes-on-the-odin-project/
Аноним 10/03/15 Втр 15:40:25 #271 №448241 
После переката на 4.2 рельсы не показывают кусочек кода приложения, где эксепшен возник. Как починить?
Аноним 10/03/15 Втр 15:42:47 #272 №448242 
Нужно показывать разное меню в зависимости от статуса пользователя. Попробовал сделать по-своему, но получилось какое-то говно:

<% user = User.new %>
<%= render 'layouts/guest_menu' if user.guest? %>
<%= render 'layouts/user_menu' if user.user? %>
<%= render 'layouts/expert_menu' if user.expert? %>

Это же не райлсвей, даже кривожопому джаваскриптисту видно. Как это сделать поэлегантнее?
Использую menu_builder
Аноним 10/03/15 Втр 15:55:51 #273 №448245 
>>448242
> <% user = User.new %>
вот так никогда не делай.

А все остальное вынеси в хелпер, чтобы получилось что то типа:
<%= render layout_for_user(user) %>
Аноним 10/03/15 Втр 16:03:43 #274 №448253 
>>448245
Про хелпер не додумался, спасибо. Как создать user, чтобы он с самого начала был доступен в хелперах и layout/application.html.erb?
Аноним 10/03/15 Втр 16:07:53 #275 №448258 
>>448253
Ебать ты ньюфак. Туториал какой нибудь пройди. А вообще создавать надо в контроллерах.
Аноним 10/03/15 Втр 16:14:07 #276 №448263 
Анон, поясни за кодировку при генерации CSV.

На выходе в файле получаю каракули.
Пекарня: на Mac OS Yosemite

Контроллер

# coding: utf-8

def zalupa

data = CSV.generate do |csv|
csv << [['Залупа','Мудё'].join(';')]
csv << [['1','2'].join(';')]
end

send_data data,
:type => 'text/csv; charset=windows-1251; header=present',
:disposition => "attachment; filename=#{csv_file_name}"

end


на выходе получаю каракули, а требуется, чтобы под ссаной виндой эксель открывал это нормально.
Аноним 10/03/15 Втр 16:33:06 #277 №448271 
Матзсаны, а вот как реализовывать связь рельсоприложения с сервисом, допустим, обработки изображений? Допустим, при загрузке юзером изображения/пачки изображений надо приляпать к нему логотип. Или, там, аудио/видео обработать. Как этот сервис и связь с ним реализовать? Отдельное приложение делать, а потом его с рельсами дружить? А как? В самих рельсах весь функционал реализовывать? А куда его пихать? А если много юзеров одновременно сервисом воспользуются, то надо же очередь организовывать в самом сервисе? А как потом рельсоприложение из сервиса уведомлять о результате? Что мне гуглить на эту тему? Что читать?
Аноним 10/03/15 Втр 16:38:55 #278 №448273 
>>448271
Смотри CarrierWave и не еби моск.
Аноним 10/03/15 Втр 17:04:05 #279 №448282 
>>448273
Это только для аплоада. Мне хочется знать, как файл (не обязательно изображение) после аплоада передавать в сервис для обработки, как этот сервис организовать и как устроить обратную связь от сервиса. Мне интересно то, какими способами подобные задачи решаются.
Допустим вот, пользователь аплоадит файл zip, чтобы сервис его переконвертировал в tar. Рельсоприложение же не должно само конвертацией заниматься? Не вызывать ведь в контроллере `unzip file.zip -d tmp/; tar -cf file.tar tmp/*`.
Аноним 10/03/15 Втр 17:07:13 #280 №448284 
>>448282
Нихуя себе для аплоада.

include CarrierWave::MiniMagick

# Choose what kind of storage to use for this uploader:
storage Rails.env.production? ? :fog : :file
# storage :fog

# Override the directory where uploaded files will be stored.
# This is a sensible default for uploaders that are meant to be mounted:
def store_dir
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end

version :small do
process :resize_to_fill => [128, 128]
end

version :medium do
process :resize_to_fill => [220, 110]
end

version :touch do
process :resize_to_fill => [240, 240]
end
Аноним 10/03/15 Втр 17:10:20 #281 №448285 
ну дак че регекспаны, как эту муть до ума довести ? http://pastebin.com/rNjWw0iK
Аноним 10/03/15 Втр 17:24:15 #282 №448292 
>>448282
Для изображений RMagick - интерфейсный гем для ImageMagick. Для других приблуд тоже.
Аноним 10/03/15 Втр 17:29:49 #283 №448294 
>>448285
http://pastebin.com/fvJzxpVJ
Как-то так. Не тестил.
Аноним 10/03/15 Втр 17:32:34 #284 №448295 
>>448285
Так и не понял зачем тебе эта ебота.
Аноним 10/03/15 Втр 17:35:02 #285 №448296 
>>448292
Да блять. Я знаю как реализовать обработку. Не о самом сервисе вопрос, а о том, как его связать с рельсоприложением, в каком месте и как его вызывать из приложения. Про структуру всего этого говна вопрос.
Аноним 10/03/15 Втр 17:55:17 #286 №448301 
>>448296
А в чем проблема дергать url рельсовой апликухи или по крону таском чекать наличие файла?
Аноним 10/03/15 Втр 18:00:34 #287 №448304 
>>448296
Думаю, rake - это то что тебе нужно. http://jasonseifer.com/2010/04/06/rake-tutorial
Аноним 10/03/15 Втр 19:15:37 #288 №448333 
14260041370060.png
>>448294
Не помогло.
>>448295
Пикрелейтед. Когда пощу ссылку и текст, то текст сливается с ссылкой, но такой хуйни быть не должно...
Аноним 10/03/15 Втр 19:48:39 #289 №448348 
>>448333
Ты наверное хелпером проверяешь весь текст сразу. А надо каждое слово отдельно.
Аноним 10/03/15 Втр 20:57:49 #290 №448409 
>>448333
Что не помогло? Это просто изменения для лучшей читаемости.

>>448333
Приведи пример, как ты используешь этот хелпер.
Аноним 11/03/15 Срд 10:22:21 #291 №448574 
Приведите примеры, когда вам пригождались какие-то известные алгоритмы типа юнион-файн, квиксорт. Или это для байтоёбов?
Аноним 11/03/15 Срд 15:58:16 #292 №448717 
Нюфак хире. Поцчему session не доступна в модели?
undefined local variable or method `session' for #<User:0x0...0>
Аноним 11/03/15 Срд 16:07:05 #293 №448725 
>>448296
>как его связать с рельсоприложением
Гемами блядь и background taskами, благо последние в 4.2 искаропки уже.
Аноним 11/03/15 Срд 16:36:09 #294 №448742 
>>448282
>Не вызывать ведь в контроллере `unzip file.zip -d tmp/; tar -cf file.tar tmp/*`
А мне норм.
Аноним 11/03/15 Срд 20:27:46 #295 №448884 
14260948667400.jpg
14260948667411.png
И так, в простой has many through есть проблемка. Вот user создает group though subscribe, коим образом и куда засунуть подписку на группу? Чтобы другие могли подписываться, и в каком контроллере это все обрабатывать.
Ну и вообще, может кто уже делал такое, или знает годные example на гитхабе. Где бы была типичная реализация по типу вконтактика, где можно пилить группы, подписываться на них. Реквестирую гуру моделирования
Аноним 12/03/15 Чтв 17:26:04 #296 №449216 
Есть пользователь <user>, который создает объекты <object>. Есть пользователь другой категории <mocha>, который ставит на эти объекты штамп - допущено/недопущено.
Отношения <user> и <object> это has_many/belongs_to, правильно? А в отношениях <mocha> и <object> я теряюсь. Как смоделировать?
Нюфак
Аноним 12/03/15 Чтв 18:05:24 #297 №449232 
>>449216
mocha - это всего лишь роль пользователя.
Аноним 12/03/15 Чтв 18:12:15 #298 №449238 
>>449232
В общем, правильный ответ has_many/has_one. У мочи много мочерированных постов, у поста одна моча.
Аноним 12/03/15 Чтв 18:31:44 #299 №449249 
>>449238
Пачибо. Алсоу, еще один вопрос. Мои пользователи не хранятся в рельсовой базе данных (заходят по ldap), а объекты - хранятся. Как реализовать взаимодействие таких не-БДшных юзеров с БДщными объектами в рамках ActiveRecord? На ум приходит только создание бесполезной таблицы для пользователей и её наполнение по мере аутентификации юзеров через ldap. Но это как-то не рубишно.
Аноним 12/03/15 Чтв 18:33:36 #300 №449251 
http://pastebin.com/Pra53M0Z
Как сделать, чтобы it_behaves_like включался автоматически в каждый блок describe?
Аноним 12/03/15 Чтв 20:14:20 #301 №449299 
Парни, читал well-grounded rubyist и наткнулся на этот пример:
>obj = Object.new

>def obj.talk
>puts "I am an object."
>puts "(Do you object?)"
>end

В чем прикол? Не лучше ли объявлять методы в классах?
Перекатываюсь с шарпика, если что.
Аноним 12/03/15 Чтв 20:30:18 #302 №449304 
>>449299
Метапрограммирование тип, ну. На деле почти никогда такое не пишут.

>>449249
А вот это уже вопрос косячности рельс: не первый раз слышу от более опытных коллег, что модели должно быть по барабану где храниться, и не нужно было жестко её привязывать к БД. Твой вариант с постепенным наполнением таблицы, наверное, единственный рабочий.
Аноним 12/03/15 Чтв 20:36:19 #303 №449307 
>>449304
> Метапрограммирование тип, ну. На деле почти никогда такое не пишут.
угу. http://edgeguides.rubyonrails.org/active_support_core_extensions.html
Аноним 12/03/15 Чтв 20:44:09 #304 №449309 
>>449307
Нуну, прямо каждый день добавляют методы к объектам в режиме выполнения.
Аноним 13/03/15 Птн 09:14:22 #305 №449452 
>>449304
>не первый раз слышу от более опытных коллег, что модели должно быть по барабану где храниться

Ну тогда надо будет писать свой драйвер, который будет обращаться к Active Directory и вытягивать список пользователей оттуда. И во все таблицы где есть поле user_id прописывать айди выдернутый из Active Directory.

Бля, так то интересная задача. Как хотя бы в теории ее решить? Призываю разум улья зк.
Аноним 13/03/15 Птн 10:07:42 #306 №449466 
>>449452
Вытянуть пользователей из AD несложно (http://www.rubydoc.info/gems/ruby-net-ldap/0.0.4/Net/LDAP). Только смысла в этом 0, ибо пароли не вытащишь, и авторизовывать все равно по LDAP придется. Потом это все рассинхронизируется и полетит поносным колобком по всему проекту.
Аноним 13/03/15 Птн 12:05:50 #307 №449495 
>>449299
Перекатываешься и не слышал про синглтоны?
Аноним 13/03/15 Птн 12:29:32 #308 №449502 
>>449466
5 лет уже пашет у меня авторизация через RADIUS на DC и ни хуя не покатилось.

Основная проблема ruby-макаки, что она дальше ruby и рельс ни хуя в упор не видит и не понимает принципов работы той или иной хуйни.
Аноним 13/03/15 Птн 21:30:30 #309 №449755 
Блять, я нихуя не пойму эти ебучие рельсы! Смотрю всякие видео, курсы, codeschool, читал "Гибкая разработка веб-приложений в среде Rails", блять сука, не могу самостоятельно даже примитивный проект написать. Не пойму логику. Вот, к примеру, двач. Как на каждой доске отобразить треды, которые принадлежат этой доске? Хуй знает.
Аноним 13/03/15 Птн 23:21:42 #310 №449811 
>>449755
http://pastebin.com/6L1KQhKa
Так понятнее или объяснить?
Аноним 14/03/15 Суб 01:11:37 #311 №449839 
>>449811
модель, миргации я понимаю, а вот что в контроллере приосходит - никак не пойму!
Аноним 14/03/15 Суб 02:38:52 #312 №449863 
>>449755
#models/doska.rb
class Doska < ActiveRecord::Base
has_many :threads
end

#models/thread.rb
class Thread < ActiveRecord:: Base
belongs_to :doska
end

#routes.rb
"get '/doskas/:doska_id/threads' => 'threads#index'"

#controllers/threads_controller.rb
class ThreadsController < ApplicationController
def index
@doska = Doska.find(params[:doska_id])
@threads = @doska.threads
end
end

#views/threads/index.html.erb
<h1>@doska.name</h1>
<ul>
<% @threads.each do |t| %>
<li>t.name</li>
<% end %>
</ul>
Аноним 14/03/15 Суб 02:40:51 #313 №449864 
>>449839
Что там не понимать? При переходе по определённому адресу из routes.rb вызывается метод контроллера соответствующий, по дефолту этот метод пытается вывалить соответсвующий view (по имени). Переменные @ при рендере копируются в scope этого view и доступны оттуда.
Аноним 14/03/15 Суб 13:35:49 #314 №449942 
Зачем нужен метод #presense?
>region = params[:state].presence || params[:country].presence || 'US'
Можно же записать как:
region = params[:state] || params[:country] || 'US'
sageАноним 14/03/15 Суб 13:45:42 #315 №449947 
14263299426930.jpg
>>449863
Аноним 14/03/15 Суб 13:53:05 #316 №449951 
>>449942
Ну, попробуй например с params[:state] = "" и узнаешь.
Аноним 14/03/15 Суб 13:56:51 #317 №449952 
>>449951
Попробовал. Узнал.
Аноним 14/03/15 Суб 14:15:13 #318 №449959 
>>441544
The Well Grounded Rubyist второе здание или первое лучше читать?
Аноним 14/03/15 Суб 14:28:29 #319 №449963 
>>449839
Дурной вопрос.
В контроллере происходит то, что ты там опишешь.

Изначальное поведение пустого контроллера - отрисовать страницу с соответствующим именем в views.
Аноним 14/03/15 Суб 14:29:12 #320 №449965 
>>449863
><li>t.name</li>
Советчик, блеать.
Аноним 14/03/15 Суб 14:53:25 #321 №449979 
>>449811
А с тредами-то, С ТРЕДАМИ как быть? При создании треда же надо автоматически создавать первый пост? Или при создании нового поста надо указывать, принадлежит ли он какому-либо треду, и если нет, то создавать тред, а в него сувать пост? Ведь почти все свойства треда (тайтл, автор, сообщение) -- это свойства его первого поста.
Аноним 14/03/15 Суб 15:18:08 #322 №449991 
14263354883400.jpg
Смотрите, на что наткнулся в коде
http://pastebin.com/njwEw3L0
Лол, как это работает?
Аноним 14/03/15 Суб 15:43:45 #323 №449999 
>>449979
> При создании треда же надо автоматически создавать первый пост?
При создании треда ты можешь создавать первый пост автоматически. Либо можешь вообще ликвидировать понятие треда и построить всё вокруг связанных постов. Так даже правильнее будет (Пост у которого нет parent_id является тредом, комментарии всегда имеют parent_id)
Аноним 14/03/15 Суб 15:46:24 #324 №450001 
>>449991
Ассоциация 1-1 к модели Attachment
Вторым аргументом идёт совершенно бесмысленный scope на себя же, который проверяет есть ли привязанная модель Attachment.

Код бездарный и непонятный.
Аноним 14/03/15 Суб 15:56:09 #325 №450003 
>>450001
А так норм? http://pastebin.com/CZyYfiGd
Аноним 14/03/15 Суб 16:04:23 #326 №450004 
>>449999
Ни разу не правильнее. Свойства треда куда девать? Прикреплённый, закрытый. Постам отдать? Но ведь для них это будет лишней, неиспользуемой функциональностью.
Аноним 14/03/15 Суб 16:58:18 #327 №450022 
>>450004
У треда могут быть ответы и у ответа могут быть ответы. Так или иначе на первый взгляд к высокой нормальной форме оба варианта не приводятся.
Но ты можешь сделать отдельные ассоциации pinned_posts, closed_posts и вынести их в отдельные таблицы, внося ключи соответствующих постов.
Аноним 14/03/15 Суб 16:59:27 #328 №450023 
>>450003
Ты в модель вносишь свойства представления. Вопрос - зачем?
Аноним 14/03/15 Суб 17:13:19 #329 №450025 
>>450023
Ты прав, конечно, код хувый, но я делаю это в рамках одного из шагов рефакторинга и в дальнейшем почищу всё.
Ебать там помойка, посоны!
Аноним 14/03/15 Суб 18:15:41 #330 №450047 
Кто-нибудь из вас изучал исходный код рельс? Есть ли в этом профит? Просто я могу сейчас поковырять кучу других штук, почитать статьи и т.д., стоит ли читать рельсы? Если начну читать, то откуда начинать? Я так думаю с rails s, да? Я ньюфаг, кода почти не читаю, поэтому думаю, что не совсем эффективно прокачиваюсь. Как считаете уметь в исходный код рельс это на уровне "ну окей, молодец" или "лолшто? не знаешь - не человек"? И сколько по времени должно уйти на чтение основы рельс? Т.е. если читать то, как вещи в общем работают внутри фреймворка, но не читать, например, код каждого метода в какой-нибудь ActiveSupport, т.к. после чтения одного-двух будет понятно где они помещаются в общей картине. Сейчас я хочу понять что именно происходит, когда я запускаю сервер и посылаю гет реквест к index действию контроллера. Как происходит раутинг? Наверное какие-нибудь хитрые регекспы и хеш-таблица или как-то иначе?
Аноним 14/03/15 Суб 18:58:35 #331 №450057 
>>450047
>Как считаете уметь в исходный код рельс это на уровне "ну окей, молодец" или "лолшто? не знаешь - не человек"?
Не собираешься контрибьютить - не лезь.
Лучше изучай проекты написанные на рельсах.

>Как происходит раутинг?
Сука, не делай так больше.
>Наверное какие-нибудь хитрые регекспы и хеш-таблица или как-то иначе?
Ты близок к правде. Кэшированные named_routes.
https://github.com/rails/rails/blob/4-2-stable/actionpack/lib/action_dispatch/routing/route_set.rb#L824

> когда я запускаю сервер и посылаю гет реквест к index действию контроллера.
Представь что твой сервер это матрёшка, в которой каждая вложенная кукла - делает что-то с запросом.
Одна из матрёшек это роутер - который определяет какой контроллер вызвать. Другая матрёшка это обработчик входящих параметров. Третья - обрабатывает кукисы.
Эти штуки называются Middlewares. Твой контроллер - Endpoint, поскольку он возвращает конечный оформленный ответ и запрос дальше не прокидывает.

Каждая следующая матрёшка получает от предыдущей переменные среды и ответ предыдущей матрёшки.

Задай более конкретные вопросы.
Аноним 14/03/15 Суб 18:59:00 #332 №450058 
>>450025
Вынеси определение урла в хелпер, в модели оставь только бизнес-логику.
Аноним 14/03/15 Суб 19:39:03 #333 №450069 
>>449502
И как ты всунул свой ссаный радиус в активрекорд, мм, уеба?
Аноним 14/03/15 Суб 19:43:03 #334 №450071 
>>449979 >>450004
has_many :through
http://edgeguides.rubyonrails.org/association_basics.html#the-has-many-through-association
Аноним 14/03/15 Суб 20:06:56 #335 №450089 
14263528168340.jpg
Анон, а ты веришь, что каким-то людям дано писать код, а каким нет?
Я вот сейчас решаю задачки. Иногда не могу решить, смотрю гитхабы других людей и просто хватаюсь за голову - насколько хорошие решения. А у меня странные индусские конструкции. Это пройдет со временем?
Аноним 14/03/15 Суб 20:56:42 #336 №450115 
>>450089
А ты хотел сразу виртуозом стать?
Аноним 14/03/15 Суб 21:47:17 #337 №450138 
Забавно, не могу найти такой хелпер в гугле, хотя в какой то книге он был.
Есть "#{time_ago_in_words(comment.created_at)}" Получается что то типа about 3 hours. А надо сделать датой, как strftime("%H:%M:%S"). Помогите.
Аноним 14/03/15 Суб 21:55:59 #338 №450144 
>>450138
.created_at.strftime("%H:%M:%S")
сам спросил. сам ответил
Аноним 14/03/15 Суб 23:52:26 #339 №450200 
>>450089
А что за задачки ты решаешь? Поделись.
Аноним 15/03/15 Вск 00:08:33 #340 №450214 
14263673136350.jpg
Пацаны, я наконец то запилил группы https://vkontanke.herokuapp.com/groups
У меня такой вопрос к гуру, вот поглядите https://github.com/ID25/social/blob/groups/app/helpers/application_helper.rb
Этот хелпер превращает ссылку в картинку если там в конце расширение правильное, или просто ссылку. Но пришлось аж 3 раза копировать этот хелпер, чтобы поменять стили в каждом img. Ну и еще, текст сливается с ссылкой, аноны говорят надо каждую строку отдельно проверять чтоб такого не было, но как? Есть у кого примеры?
Аноним 15/03/15 Вск 07:20:14 #341 №450289 
>>450214
>Но пришлось аж 3 раза копировать этот хелпер, чтобы поменять стили в каждом img
Нахуя?
Аноним 15/03/15 Вск 08:55:17 #342 №450292 
Аноны, маленьких вопросов от ньюфага время.

0. Есть subscribe действие в контроллере, к которому при нажатии кнопки отправляется post реквест с value: 'subscribe' или value: 'unsubscribe'. Чтобы не вводить условие в контроллере, я решил отправлять value к модели: ModelName.send(params[:value], current_user.id, params[:whatever]) - это норм или лучше так не делать? Так я избавился от ветвления в контроллере, но теперь названия методов, которые я отправляю хранятся в роутере! Может быть вернуть обратно? А может быть запилить ещё одно действие unsubscribe?

1. Если метод использует какой-нибудь аттрибут объекта, скажем id, то лучше отправлять только этот аттрибут или весь объект целеком и позволить методу извлечь всё что требуется самостоятельно?

2. Есть несколько простых действий в контроллере, которые загружают данные из БД и рендерят дефолтный шаблон. Стоит ли их тестрировать? Стоит ли тестировать валидации и ассоциации? Я не вижу ценности в таких тестах, если честно, но с другой стороны thoughtbot написали shoulda matchers, и возможно неспроста.

3. Как заставить devise редиректить неавторизированного пользователя на sign_up страницу, а не sign_in? В вики ничего не нашёл.

4. PL/pgSQL. Как написать и использовать процедуру в рельсах?

5. Как вынести функционал в микросервис? Пока читаю про них время от времени и не могу понять как это на практике реализуется. Какие-то RabbitMQ, очереди, RPC - как вы это делаете?

6. Какой код идёт в хелперы? Я пока решил туда класть всю логику из вьюх - условия, генерацию HTML, форматирование данных и даже запросы к БД, чтобы избежать N+1 запросов, если простые eager load или preload не подходят.
Аноним 15/03/15 Вск 10:28:09 #343 №450306 
Нужно базовое форматирование текста, как на дваче например, есть ли гем для этого? Или легче саомому запилить?
Аноним 15/03/15 Вск 10:30:38 #344 №450309 
>>450306
сам как думаешь
Аноним 15/03/15 Вск 12:40:59 #345 №450334 
>>450292
>ModelName.send(params[:value], current_user.id, params[:whatever])
Очень плохо. Смотришь в контроллер, а оказывается, что надо смотреть в роутинг и совершенно непонятно, что он делает. Делай отдельные экшены subscribe, unsubscribe и т.д. Спасибо потом мне скажешь.

>Стоит ли тестировать валидации и ассоциации?
Нет особого смысла.

>Пока читаю про них время от времени и не могу понять как это на практике реализуется. Какие-то RabbitMQ, очереди, RPC - как вы это делаете?
Если ты про асинхронные действия, есть, например sidekiq.

>Какой код идёт в хелперы? Я пока решил туда класть всю логику из вьюх
Ну и правильно.
>и даже запросы к БД
А вот это уже не очень. На практике выясняется, что лучше все необходимые запросы делать в контроллере и явным образом через locals отправлять во вьюху, вместо использования instance переменных контроллера. Да, это некрасиво выглядит, но зато точно знаешь откуда что берется и можешь отследить все изменения переменной по пути во вьюху.
Аноним 15/03/15 Вск 12:52:08 #346 №450337 
>>450292
>Есть subscribe действие в контроллере, к которому при нажатии кнопки отправляется post реквест с value: 'subscribe' или value: 'unsubscribe'. Чтобы не вводить условие в контроллере, я решил отправлять value к модели: ModelName.send(params[:value], current_user.id, params[:whatever]) - это норм или лучше так не делать? Так я избавился от ветвления в контроллере, но теперь названия методов, которые я отправляю хранятся в роутере! Может быть вернуть обратно? А может быть запилить ещё одно действие unsubscribe?

В руби нет честных областей видимости. Через send ты сможешь вызвать и private и protected методы.
То что ты предлагаешь хуже чем User.find_by_sql("select * from users where id = #{params[:value]}")

>1. Если метод использует какой-нибудь аттрибут объекта, скажем id, то лучше отправлять только этот аттрибут или весь объект целеком и позволить методу извлечь всё что требуется самостоятельно?
Чем точнее и чётче описаны действия методы - тем лучше. Входящий параметр часть описания. Лучше прокидывай только этот атрибут.

>3. Как заставить devise редиректить неавторизированного пользователя на sign_up страницу, а не sign_in? В вики ничего не нашёл.
https://github.com/plataformatec/devise/wiki/How-To:-Redirect-to-a-specific-page-when-the-user-can-not-be-authenticated

>4. PL/pgSQL. Как написать и использовать процедуру в рельсах?
Рельсы не слишком хорошо дружат с хранимыми процедурами из-за глубоких завязок в ORM.

>5. Как вынести функционал в микросервис? Пока читаю про них время от времени и не могу понять как это на практике реализуется. Какие-то RabbitMQ, очереди, RPC - как вы это делаете?
Слишком обширную тему ты затронул.
MQ - MessageQueue. Это паттерн сообщений между разнесёнными системами.
RPC - Remote Procedures Call. Это паттерн исполнения процедур на сторонней системе.

RPC в рубях явление редкое, но Google зарелизил хорошую тулзу GRPC(https://github.com/grpc/grpc/)

Опиши что за функционал ты имеешь ввиду и можно будет порекомендовать что-то конкретное.

>6. Какой код идёт в хелперы? Я пока решил туда класть всю логику из вьюх - условия, генерацию HTML, форматирование данных и даже запросы к БД, чтобы избежать N+1 запросов, если простые eager load или preload не подходят.

В хелперы идёт любой код который используется не однократно и не вписывается в рамки определений model,view,controller.
N+1 никак с хелперами не связаны, хелперы не кэшируют результат соотв-но и проблему твою не решают.
Аноним 15/03/15 Вск 13:02:30 #347 №450341 
>>450337
2.1.2 :003 > class A; private; def blah; end; end
=> :blah
2.1.2 :004 > a = A.new
=> #<A:0x00000001167938>
2.1.2 :005 > a.send(:blah)
=> nil
2.1.2 :006 > a.public_send(:blah)
NoMethodError: private method `blah' called for #<A:0x00000001167938>
from (irb):6:in `public_send'
Аноним 15/03/15 Вск 13:45:07 #348 №450358 
не троллирую. в чем профит рельс перед js framework?
язык. но есть же ec6.
больше библиотек и инструментов, но это временно. начал разбираться с npm, jspm... все очень просто.
я давно с руби колупаюсь и js не так хорошо знаю. интересно, почему новички сюда лезут. нужно же и jspm разобрать и bundler, rake... все дублируется.

у js большой плюс в том, что можно разобраться в js, все. и потратить время которое уйдет на разбирательство с ruby, на erlang.. что угодно. главная задача ведь экономия времени.
Аноним 15/03/15 Вск 13:56:51 #349 №450361 
>>450358
Че сказать-то хотел?
Аноним 15/03/15 Вск 14:06:42 #350 №450365 
>>450361
почему рельсы?
ты же делал для себя список:
плюсы рельсов
плюсы js framework
Аноним 15/03/15 Вск 14:32:08 #351 №450374 
>>450358
На жабаскрипте можно обычный блокирующий код писать, которого достаточно для 99% проектов?
Аноним 15/03/15 Вск 14:47:55 #352 №450387 
Аноны. Очень простой вопрос:
Я старый виндузятник. Мне не очень нравится линукс (хотя, Fedora новая - неплохая системка, но там куча всего в репозиториях самой Федоры просто нет...Плюс ебаный FFADO для моей звуковой карты нихуя не ставится), смогу ли я успешно кодить на рельсах из под винды? Сейчас посыпятся слова: сервера на линуксе, будут проблемы с путями к файлам, но мне это пока не особо важно, потому что пути можно поправить, а мою неприязнь к линуксу - нет.
Аноним 15/03/15 Вск 14:55:55 #353 №450389 
>>450387
VirtualBox
На крайняк прямо в heroku деплоируй свою писанину
Аноним 15/03/15 Вск 15:01:33 #354 №450392 
>>450341
И что ты сказать этим хотел?
Аноним 15/03/15 Вск 15:16:09 #355 №450397 
>>450389
А без костылей, просто под виндой? (как с питоном)
Аноним 15/03/15 Вск 15:27:55 #356 №450404 
Посоны, что за шрифт на первой пике в ОП посте?
Аноним 15/03/15 Вск 15:32:10 #357 №450405 
>>450397
Некоторые гемы не работают, типа bootstrap-sass. Ну у кого-то с ssl при скачивании гемов проблемы, хотя это решаемо. В остальном норм.
Аноним 15/03/15 Вск 15:32:34 #358 №450407 
>>450374
блокирующий код?
создал несколько нитей и ждешь пока они завершат работу? не знаю если в js есть нити. я же только начал его изучать.

если ты про написание последовательного кода, то можно. это шутка, про асинхронность везде.

но что-то видимо все пока очень сырое, даже документации кое-где нет:
http://sailsjs.org/#!/features
http://geddyjs.org/
http://expressjs.com/starter/basic-routing.html
Аноним 15/03/15 Вск 15:34:09 #359 №450408 
>>450405
> Ну у кого-то с ssl при скачивании гемов проблемы
http://stackoverflow.com/questions/19150017/ssl-error-when-installing-rubygems-unable-to-pull-data-from-https-rubygems-o/27298259#27298259
sageАноним 15/03/15 Вск 15:35:19 #360 №450409 
>>450404
Уебищные мрази на вебм. Не смотрите.
Аноним 15/03/15 Вск 15:37:38 #361 №450410 
>>450409
У тебя бывало, что после второго дня чтения гайдов на английском становится сложно изьясняться по-русски? Controller-specific asset не могу по-русски.
Аноним 15/03/15 Вск 15:40:28 #362 №450411 
>>450407
>но что-то видимо все пока очень сырое, даже документации кое-где нет:
>implying этим js лучше rails
Г'cпади, этот ваш js даже лучше php никогда не станет. Разве что после смерти твоих правнуков.
Аноним 15/03/15 Вск 15:42:39 #363 №450413 
14264233591190.png
Чет блеванул с js-синтаксиса.
Аноним 15/03/15 Вск 15:54:01 #364 №450420 
>>450411
я не говорю, что лучше.
если ты собрался писать веб программы, то тебе нужен js. так-как ничего больше браузер не исполняет.
может лучше тогда и дальше писать на js? а свободное время потратить на изучение чего-то другого. мне кажется, полезнее изучить erlang или С, субд, алгоритмы получше, чем ruby.
ruby не поможет тебе делать меньше ошибок, или поможет? это тоже динамический язык.

синтаксис говно и там есть очень плохое говно, в ruby получше.
в es6 больше сахара:
https://babeljs.io/docs/learn-es6/

но есть и cofeescript, ... языки которые транслируются в js.
sageАноним 15/03/15 Вск 15:54:48 #365 №450422 
14264240885150.png
>>450413
>Чет
Ясно.
sageАноним 15/03/15 Вск 15:56:53 #366 №450423 
>>450420
> cofee
> javaskript
Аноним 15/03/15 Вск 16:58:37 #367 №450458 
>>450407
> если ты про написание последовательного кода, то можно. это шутка, про асинхронность везде.
Покажи. Все, что я видел, это лапша из коллбэков.
Аноним 15/03/15 Вск 17:54:00 #368 №450487 
>>450420
>ruby не поможет тебе делать меньше ошибок, или поможет?
А erlang поможет? Или С? Или субд? Ты кокой-то тупой.
Аноним 15/03/15 Вск 18:52:03 #369 №450521 
>>449238
Подожди, подожди, разве пост может одновременно belongs_to user и has_one user? Ведь моча и юзер это объект класса юзер.
Аноним 15/03/15 Вск 18:54:53 #370 №450523 
>>450487
высказывания из разных параграфов.

каждый из этих инструментов может делать то, что не может другой.
js и ruby не многим отличаются.

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

>>450458
https://github.com/balderdashy/waterline
это их ORM.
не знаю зачем callback в find(..., callback). но он не обязателен.
sageАноним 15/03/15 Вск 18:56:54 #371 №450524 
>>450523
https://github.com/balderdashy/waterline-docs/blob/master/query-methods.md
вот эта ссылка.
Аноним 15/03/15 Вск 18:57:24 #372 №450525 
>>450521
У них классы разные должны быть. Как бы STI.
Аноним 15/03/15 Вск 19:00:33 #373 №450526 
>>450521
Няша... a = []; a[0] = a; окей? Всё может, тем более такая простая ассоциация как у тебя.
Аноним 15/03/15 Вск 19:08:40 #374 №450532 
>>450525
Для юзера пилить свой вход, таблицу в БД, CURRENT_USER и кучу говна в хелперах, и для мочи тоже самое дублировать? Или как. Подскажи.
>>450526
Нихуя не понял. А может так?

user has_many posts
user has_many approves

post belongs_to user
post has_one approve

approve ??? user
approve ??? post
Аноним 15/03/15 Вск 19:15:59 #375 №450537 
14264361595120.jpg
>>450525
>>450532
Нашол. Active Record allows inheritance by storing the name of the class in a column that is named “type” by default.
Аноним 15/03/15 Вск 20:46:30 #376 №450605 
>>450537
Замечательно все с этим вашим STI:
def current_user
auth_token = User.encrypt cookies[:auth_token]
@current_user ||= User.find_by auth_token: auth_token
end
Теперь эта хуйня не работает. Теперь надо так:

def current_user
auth_token = User.encrypt cookies[:auth_token]
@current_user ||= Mocha.find_by auth_token: auth_token
@current_user ||= Govno.find_by auth_token: auth_token
end
Аноним 15/03/15 Вск 22:54:22 #377 №450665 
>>450458
кажется я ошибся.

и в ORM библиотеке нужно указать callback.
посмотрел async библиотеку. пока не знаю, как то сложно.
Аноним 16/03/15 Пнд 13:27:03 #378 №450868 
Котаны, укажите на ошибку с respond_to

Имеется форма авторизации, передающая логин и пароль

<%= form_tag session_path, remote: true do |f| %>
....
<% end %>


Она привязана к экшену, который делает запрос на сторонний сервак с полученными логином и пасом и получает ответ.

def create
phone = params[:login]
password = params[:password]
.....
response = HTTParty.post .....
respond_to do |format|
if response.parsed_response['resp'] == 'authorized'
format.js { render partial: 'reload_page' }
elsif response.parsed_response['resp'] == 'no_such_user'
format.js { render partial: 'return_error'}
end
end
end

в случае получения того или иного ответа я пытаюсь отрендрить один из двух js-партиалов, на что не вполне резонно получаю ХУЙ в виде: ActionController::UnknownFormat in SessionsController#create

Куда копать?


Аноним 16/03/15 Пнд 13:56:45 #379 №450881 
>>450868
Сука блять, где вас таких говнокодеров только находят, наверняка тебе эту хуету для работы сделать надо?.

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

partial_name= if response.parsed_response['resp'] == 'authorized'
'reload_page'
elsif response.parsed_response['resp'] == 'no_such_user'
'return_error'
end

respond_to do |format|
format.js { render partial: partial_name}
end
Аноним 16/03/15 Пнд 15:53:51 #380 №450923 
>>450881
Отрефакторил твой говнокод, не благодари.

partial_name = {'authorized' => 'reload_page', 'no_such_user' => 'return_error'}[response.parsed_response['resp']]
Аноним 16/03/15 Пнд 16:06:39 #381 №450925 
>>450923
Все равно поблагодарю. А в каких случаях удобнее юзать кейс а в каких хеш?
Аноним 16/03/15 Пнд 18:24:43 #382 №450979 
>>450925
Hash - когда значения константные, а case - когда динамические.
Аноним 16/03/15 Пнд 18:43:57 #383 №450990 
https://hikka.herokuapp.com

Анон, почему руби-сайты работают так, будто страница вообще не перезагружается? Какая-то особеннсоть веб-сервера?
Аноним 16/03/15 Пнд 18:44:20 #384 №450991 
>>450990
> особенность
Аноним 16/03/15 Пнд 19:00:43 #385 №451002 
>>450990
turbolinks
Аноним 16/03/15 Пнд 19:59:19 #386 №451023 
14265251592810.png
Не получается надрочить регулярку, и примеров нету. Анонасы, ну как заставить эту хуйню правильно детектить ссылки от текста?
Аноним 16/03/15 Пнд 21:23:20 #387 №451064 
>>451023
http://stackoverflow.com/a/190405
[CODE]/https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)/[/CODE]
Аноним 16/03/15 Пнд 21:34:41 #388 №451066 
>>451023
> /(https?:\/\/)?([\w\.]+)\.([a-z]{2,6}\.?)(\/[\w\.])\/?/
Аноним 16/03/15 Пнд 23:13:13 #389 №451128 
Аноны, как, ну как блять сделать так, чтобы когда я создаю новый тред на доске у меня тред автоматически принимал параметр :board_id?
Пытался делать так:

def create
@thr = Thr.new(params[:thr].permit(:title), ...)
@thr.board_id = @board
@thr.save

redirect_to @thr
end
Аноним 16/03/15 Пнд 23:17:04 #390 №451132 
>>451128
ERROR: null value in column "board_id" violates not-null constraint DETAIL: Failing row contains

значение НЕ-ПРИ-НИ-МА-ЕТ
Аноним 16/03/15 Пнд 23:23:11 #391 №451136 
>>451128
>@thr.board_id = @board
Может такие @thr.board_id = @board.id ?
Аноним 16/03/15 Пнд 23:33:40 #392 №451144 
>>451128
Ну пиздец.
@board.threads.create! permitted_params
И что блядь за Thr ещё? Борду небось Brd назвал?
Аноним 16/03/15 Пнд 23:37:52 #393 №451146 
>>451144
def crt
@thr = The.nw(prms[:thr].prmt(:ttle)
@thr.brd_id = @brd
@thr.sv!

rdirct_t @thr
end
Аноним 17/03/15 Втр 00:08:57 #394 №451166 
14265401375390.jpg
>>451064>>451066
Cпасибо, но это не помогло. Но это не важно, я уже нашел решение.
Теперь другой вопрос, как реализовать репосты, по типу ВК. Я даже не знаю, тащить чужие посты в массив своих, чтоб они отображались в своем профиле, кто нибудь делал такое? Нужна помощь и подсказка.
Аноним 17/03/15 Втр 01:04:38 #395 №451209 
>>451136
у меня @board почему-то nill !

>>451144
Я бы назвал Thread если бы это имя не было ЗА-РЕ-ЗЕР-ВИ-РО-ВА-НО.
Аноним 17/03/15 Втр 01:17:23 #396 №451213 
>>451209
>у меня @board почему-то nill !
Уж не потому ли, что ты этот @board даже не искал?

>Я бы назвал Thread если бы это имя не было ЗА-РЕ-ЗЕР-ВИ-РО-ВА-НО.
Почему бы не назвать тогда Topic?
Аноним 17/03/15 Втр 01:22:03 #397 №451214 
14265445235950.png
>>451213
ну а как его найти йопата?
Аноним 17/03/15 Втр 03:58:22 #398 №451232 
>>451166
Как варант - различные типы постов.
text/image/repost
Ну а там по айди тащить пост и автора, ну р рендерить их.
Аноним 17/03/15 Втр 09:11:29 #399 №451248 
>>451214
@board = Board.find(params[:board_id])
Аноним 17/03/15 Втр 10:16:59 #400 №451258 
>>451248
откуда у @board параметр board_id ?
sageАноним 17/03/15 Втр 10:46:40 #401 №451267 
>>451258
Ну ошибся он, тебе обязательно спросить надо?
Аноним 17/03/15 Втр 11:27:15 #402 №451278 
>>451258
Из таблицы. Primary key.
У @board кстати board_id нет. Есть id.
Аноним 17/03/15 Втр 11:27:48 #403 №451279 
>>451258
Nested resources.
Аноним 17/03/15 Втр 12:10:18 #404 №451289 
Что-то не могу разобраться а артиклями в описаниях тестов. Писать или не писать? Например:
it 'subscribes the user to the project'
vs
it 'subscribes user to project'
А может вообще использовать неопределённые артикли? Я грамматическое правило знаю, но ИРЛ его недостаточно для безупречного использования артиклей. Я пока решил не писать артикли, потому что так выходит короче и иногда позволяет написать более точное описание теста в одну строку.
Аноним 17/03/15 Втр 12:35:26 #405 №451294 
>>451289
Лол, ну и проблемы у тебя. Артикли для естественных языков, здесь они нахрен не нужны.
Аноним 17/03/15 Втр 17:04:49 #406 №451423 
14266010899080.png
>>451289
>>451294
РУБИПРОБЛЕМЫ. Когда понимаешь, что вместо этого нужно было учить инглиш.
Аноним 17/03/15 Втр 17:18:32 #407 №451429 
>>451423
>2015
>учить инглиш
>вместо руби
Как вообще можно было учить руби тогда?
Аноним 17/03/15 Втр 17:35:57 #408 №451433 
>>451429
Вот это и является проблемой
Аноним 17/03/15 Втр 18:39:40 #409 №451457 
>def mixed_args(a,b,c,d)
>puts "Arguments:"
>puts a,b,c,d
>end

"Basically, Ruby tries to assign values to as many variables as possible. And the
sponge parameters get the lowest priority: if the method runs out of arguments after
it’s performed the assignments of required arguments, then a catch-all parameter like
c ends up as an empty array. The required arguments both before c and after c get
taken care of before c does."

>def
>broken_args(x,
y,z=1)
>end

"it’s a syntax error, because there’s no way it could be correct. Once you’ve given x its
argument and sponged up all the remaining arguments in the array y , nothing can ever be left for z."

>And the sponge parameters get the lowest priority
>Once you’ve given x its
>argument and sponged up all the remaining arguments >in the array y , nothing can ever be left for z.

Это я такой глупенький или автор противоречит сам себе?
Аноним 17/03/15 Втр 18:41:26 #410 №451458 
>>451457
>def mixed_args(a,b,ЗВЕЗДАc,d)
>broken_args(x,ЗВЕЗДАy,z=1)
Аноним 17/03/15 Втр 18:52:46 #411 №451464 
Анончики, а вот подскажите, хочу, чтобы при открытии каждого треда был путь board/1/thr/2
Вот как я пытаюсь это сделать:
<%= link_to board_thr_path do %>
<b><%= thr.title %></b>
<% end %

В результате:
undefined local variable or method `board_thr_path' for #<#<Class:0xa82bb44>:0xb55c7f78>
Аноним 17/03/15 Втр 19:01:42 #412 №451467 
>>451464
http://edgeguides.rubyonrails.org/routing.html#nested-resources
И смотри в Rails.application.routes.url_helpers.methods
Аноним 17/03/15 Втр 19:14:10 #413 №451475 
14266088500370.jpg
>>451467
Так я и думал!
Благодарочка!
Аноним 18/03/15 Срд 16:06:43 #414 №451862 
Посоветуйте гем для упрощения работы с ajax. Надоело из проекта в проект писать одну и ту же js-лапшу. Чаще всего повторяется задача: по ajax принять данные и отрисовать их в модальном бутстраповском окне.
Аноним 18/03/15 Срд 16:15:03 #415 №451863 
>>451862
Данные в json, конечно же.
Аноним 18/03/15 Срд 20:45:59 #416 №452001 
>>451863
У меня тоже вопрос по ajax. Я сейчас делаю через respond with и создаю файлы типа create.js.erb и тд. Это ведь не лучшее решение?
Аноним 18/03/15 Срд 23:07:36 #417 №452061 
14267092561230.png
Всем ня
Аноним 18/03/15 Срд 23:59:54 #418 №452095 
>>441544
1. Есть сайт с кучей статей, статьи на каком-то сумасшедшем диалекте BBCode с перекрестными тегами, с незакрытыми тегами, с левыми тегами, с абсолютно неадекватным использованием тегов etc., и, естественно, только одна-единственная неизвестная мне реализация этого BBCode способна более-менее это чудо распарсить. Я перевожу это на Markdown. Титаническими усилиями, кучей костылей, но худо-бедно автоматически. Предполагается, что пользователи тоже будут добавлять свои статьи. Markdown позволяет инлайнить HTML. Как себя максимально обезопасить? Как сделать так, чтобы незакрытый тег уебка-пользователя не портил мне всю вертку? Как сделать так, чтобы JavaScript нельзя было встроить, но любой безопасный HTML при этом можно было? Смотрю в сторону Sanitize с вырезанием определенных «опасных» тегов которые еще надо все-все предусмотреть, но спрашиваю наперёд.
2. Статьи все по разным категориям раскиданы. Правильно ли я думаю, что для этих категорий лишние сущности плодить не надо и все сделать на рутинге и очень кастомных контроллерах? Хотя, где контроллер там и сущность. В общем, сам путаюсь уже, что здесь точно надо, но для каждой статьи должна быть указана категория, и тупорылый пользователь может неправильно ввести ее название и создать левую категорию. Следовательно, имеет смысл дать пользователю выбрать уже существующую категорию или же создать свою, но в таком случае уже и надо смело пилить новую сущность. Извините, если плохо объяснил, но, наверное, на такие тупые вопросы у опытных есть файлик с кучей ссылок по теме. Я буду сам разбираться, конечно, но если кому-то будет нечего делать, то, может, и поможет мне кто.
3. Еще интересует всякая херня вроде активированных пунктов бутстраповского меню. Как это все правильно организовывать? Я могу в пыхостайле это все оформить, вручную вписывая кучу всяких конструкций для проверки раздела сайта и все такое, но это ведь хуйня наверняка и все придумано до меня.
Аноним 19/03/15 Чтв 00:07:44 #419 №452100 
>>452061
Поясни значение пика непросвещенным
Аноним 19/03/15 Чтв 00:12:28 #420 №452103 
void main()
{
return 0;
}

Что я делаю не так?
Аноним 19/03/15 Чтв 00:23:36 #421 №452107 
>>452103
Если функция возвращает void, то ноль она вернуть уже не может. Либо одинокий «return;», либо вообще можешь его опустить. Если необходимо вернуть какое-то значение, то и объяви что-то вроде «int main()».
Аноним 19/03/15 Чтв 01:15:06 #422 №452121 
>>452095
Нихуя не понял, но вот тебе интересное решение для третьего пункта: http://pothibo.com/2014/04/contextual-menus-with-yield-and-content_for
Хотя я сам пользуюсь https://github.com/danielvlopes/menu_builder
Аноним 19/03/15 Чтв 01:26:31 #423 №452123 
14267175918330.jpg
Как можно реализовать аналог репостов? Есть группы и посты пользователей, их надо как то отобразить на своей странице если репостнул, ну и должны отображаться откуда репост сделан.
Аноним 19/03/15 Чтв 09:35:58 #424 №452226 
>>452123
Воспользуйся этим http://api.rubyonrails.org/classes/ActiveRecord/Inheritance.html родительский класс будет Post и два наследника OwnPost RePost.
Аноним 19/03/15 Чтв 10:00:39 #425 №452233 
>>442702
Мимопробегает пхп/жс мартышка.

Часто приходится верстать, бутстрап - не таблетка от верстки, все-равно придется. Тащемта у меня верстка занимает много больше времени чем написание логики. Тащемта верстка - декларативное дерьмище, ангуляр - говно, которое делает и дерьмо медленным, а жс - вообще язык больных индусов
Аноним 19/03/15 Чтв 10:56:02 #426 №452241 
Хорошо, попробуем еще раз. Как правильно сделать разбивку статей по категориям? Нужно ли создавать модель Categories или же лучше в контроллере Publications сделать кастомный экшн с группированием статей, прикостылять рутинг и радоваться?
Аноним 19/03/15 Чтв 10:59:32 #427 №452243 
>>452241
Алсо, у категорий-то есть небольшая иерархия. Вложенность не глубже второго уровня, но видимо, предстоит много с чем попердолиться. Не представляю, как эту хуйню сделать.
Аноним 19/03/15 Чтв 11:18:04 #428 №452250 
>>452241
Я думаю что категории у тебя могут и добавляться и удаляться. Так что лучше сделать отдельную модель для этого. Если у тебя будет только одна вложенная категория в другую то просто сделай модель SubCategory. Если же вложенность более глубокая, то вот тебе пример http://www.rusrails.ru/active-record-associations#samoprisoedinenie
Аноним 19/03/15 Чтв 11:35:54 #429 №452256 
>>452250
Спасибо, что откликнулся, бро. Почитаю всё и чужие рельсосайты на гитхабе полистаю. Но я недоволен тем, насколько вся эта херня получается неуклюжей. Так как любой пользователь может добавить категорию для своей статьи, он может опечататься или продублировать другую категорию, не заметив, что уже была подходящая. Необходимо учесть, что некоторые новые категории не должны быть утверждены до проверки статьи модератором. Со скрипом могу это сделать. Также не забываем, что модератор может не просто изменить название категории, но и переместить статью в другую категорию. Тогда нужно удалить старую категорию, если она оказалась без статей теперь вообще. И прочее, прочее, прочее… Как-то это неаккуратно все, и от этого уйти нельзя, судя по всему.

Раньше для названия категории в таблице была отдельная колонка. При первом приближении это не самая удачная затея, но если присмотреться, то диву даешься, насколько именно для данного случая это удобно, потому что всей этой чушью в итоге занимается база данных, а с индексами оно еще и не тормозит, да и вообще вся эта логика реализуется автоматически и никакого внимания к себе не требует. Но да, не универсально.
Аноним 19/03/15 Чтв 11:57:58 #430 №452263 
>>452256
>Так как любой пользователь может добавить категорию для своей статьи, он может опечататься или продублировать другую категорию, не заметив, что уже была подходящая. Необходимо учесть, что некоторые новые категории не должны быть утверждены до проверки статьи модератором.
Либо запрети пользователю создавать категории и разреши это только модераторам, либо сделай livesearch по категориям, но все равно это ненадежно будет.

>Также не забываем, что модератор может не просто изменить название категории, но и переместить статью в другую категорию. Тогда нужно удалить старую категорию, если она оказалась без статей теперь вообще.
А если в этой категории в будущем будут статьи, то ее заново создавать придется? Но если ты все таки хочешь это делать, то пользуйся коллбеками. В твоем случае нужен after_update и вот это http://api.rubyonrails.org/classes/ActiveModel/Dirty.html чтобы получить старое значение, там ты проверяешь изменившийся параметр, и если он категория, проверяешь кол-во статей с этой категорией, если оно равно 0, то удаляешь эту категорию.

>Раньше для названия категории в таблице была отдельная колонка.
Плохое решение, при изменении категории, или при переименовывании пришлось бы проходить по всем статьям.
Аноним 19/03/15 Чтв 12:18:18 #431 №452271 
>>452095
>Смотрю в сторону Sanitize с вырезанием определенных «опасных» тегов
http://edgeguides.rubyonrails.org/security.html#whitelists-versus-blacklists
Вообще рекомендую весь раздел прочитать а лучше полностью все гайды

>3. Еще интересует всякая херня вроде активированных пунктов бутстраповского меню. Как это все правильно организовывать? Я могу в пыхостайле это все оформить, вручную вписывая кучу всяких конструкций для проверки раздела сайта и все такое, но это ведь хуйня наверняка и все придумано до меня.
https://github.com/comfy/active_link_to
Аноним 19/03/15 Чтв 12:18:49 #432 №452272 
>>452263
> Плохое решение
Я же сказал, что для этой задачи. Категории не переименовывались. Никогда. Совсем. И невозможно представить, что должно в этом мире произойти, чтобы хотя бы что-то пришлось переименовать. Это уже не суть важно, конечно, и понятно, что делать надо правильно, а не как мне хочется.

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

> запрети пользователю создавать категории и разреши это только модераторам
И тогда у нас в модели статьи будет всегда храниться ненужное название категории, на которую она и без того ссылается.

Спасибо большое за советы, буду разбираться.
Аноним 19/03/15 Чтв 12:35:57 #433 №452277 
Есть модель Подписчики с полем date (например, 2012-12-12), куда каждый месяц заносится число подписчиков.
Есть данные за весь прошлый год и начало этого. Нужно сделать, чтобы когда я вызываю квартальный метод, он возвращал мне 1 квартал 2015 и 2 последних квартала 2014. Вызываю годовой - 3 рандомных числа из 2015, 2014 и 2013 годов.

Сейчас это выглядит как-то так:
scope :monthly, -> { order('date DESC').limit(3).reverse }
scope :annual, -> { что тута? }
scope :quarter, -> { а тута? }

Помогите, плиз.
Аноним 19/03/15 Чтв 12:47:40 #434 №452284 
>>452277
>тута
— (Кричит.) Оооааа, бля, какой же ты мудак, блядь! Мы сидим тута. Вдвоём тута. Сидим. Сидим, ёпта, сидим! Ты можешь заткнуться, просто, блядь, сидеть, нихуя не говорить, вообще, блядь, молчать просто?

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

>>452095
>3. Еще интересует всякая херня вроде активированных пунктов бутстраповского меню. Как это все правильно организовывать? Я могу в пыхостайле это все оформить, вручную вписывая кучу всяких конструкций для проверки раздела сайта и все такое, но это ведь хуйня наверняка и все придумано до меня.
Если будешь использовать твиттор бутстрап https://github.com/seyhunak/twitter-bootstrap-rails , то можешь использовать Navbar Helper, он сам за тебя решает какая страница сейчас активная и соответственно подсвечивает ее в главном меню.
Аноним 19/03/15 Чтв 13:09:40 #435 №452292 
>>452284
Ну не стукай, все же мы люди.

Числа это подписчики, например, в твиттере. Они меняются и каждый месяц в БД заносится новое число. Потом я могу смотреть динамику, как росли/убавлялись подписки.

Мне нужна динамика за последние 3 месяца, последние 3 квартала и 3 года. Сечёшь?
Аноним 19/03/15 Чтв 13:22:19 #436 №452296 
>>452001
Нормальное решение. У того петуха данные в json, поэтому ему остается только пердолиться.
Аноним 19/03/15 Чтв 13:29:11 #437 №452301 
>>452292
scope :three_months, -> {where(date: 4.month.ago...Time.now.month ).order('date DESC') }

Вот так 3 последних месяца, не считая текущего. Остальное по аналогии сделаешь.
Аноним 19/03/15 Чтв 13:40:47 #438 №452306 
Здарова бандиты, только начал изучать ruby, а вопрос по рельсам.
Что делать, если запрос выполняется долго, а ответ браузеру нужен прямо сейчас?

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

Так вот я хотел сделать что-то такое:
render "view"
#heavy code goes here
Так вот, код после рендера будет выполняться, или render заевршает выполнение кода в контроллере?
Аноним 19/03/15 Чтв 13:47:48 #439 №452310 
>>452306
http://www.rusrails.ru/active_job_basics если используешь рельсы 4.2, а вообще много решений есть https://www.ruby-toolbox.com/categories/Background_Jobs
Аноним 19/03/15 Чтв 15:01:21 #440 №452345 
Как, кстати, работает active job? В смысле – когда и как часто запускается? А то я бегло пробежался по документации и не нашел вообще ничего об этом.
Аноним 19/03/15 Чтв 15:02:12 #441 №452347 
>>452306
https://github.com/mperham/sidekiq
Аноним 19/03/15 Чтв 15:47:05 #442 №452364 
Что за хуйня, немного поменял вьюхи только, и случился пиздец, каждый ajax запрос, дублируется. типа открывает сразу две формы или отправляется сразу 2 поста, все сохраняются. Что это может быть? Как фиксить? Я даже не могу понять почему так происходит.
Аноним 19/03/15 Чтв 16:27:27 #443 №452387 
>>452364
Перезапусти рейлс сервер, а потом комп, если первое не поможет. Какая то хуета у тебя случилась.
sageАноним 19/03/15 Чтв 16:54:19 #444 №452411 
>>452387
ПЕРЕУСТАНОВИ ЛИНУКС.

используй контроль версий. будет видно что ты там поменял и от этого плясать.
Аноним 19/03/15 Чтв 18:07:57 #445 №452429 
>>452364
Открывай дебаггер в браузере и смотри откуда запросы.
Аноним 19/03/15 Чтв 18:56:57 #446 №452446 
14267806179870.png
>>452387>>452411>>452429
Я все опробовал, в запросах все всем рендерится и добавляется. Но я уже разобрался, это турболинкс ебучий был. Зато наконец добавил ajax к лойсам и прочему. ну и еще немного десигн подправил http://vkontanke.herokuapp.com/
Аноним 19/03/15 Чтв 19:31:24 #447 №452459 
>>452301
Как забрать последние 3 месяца я знаю, меня интересовали только кварталы и годы. И по аналогии не получится, потому что нужно по одному значению с каждого квартала/года, а твой код в лучшем случае вытащит всё за определённый период.
Аноним 19/03/15 Чтв 20:53:32 #448 №452546 
>>452459
Что за "одно значение"? Рандомное что ли? Или среднее? Группируй@агрегируй, епта.
Аноним 19/03/15 Чтв 22:01:42 #449 №452577 
>>446254
>Сейчас разбираюсь в Go.
Нахуя?
Говно ведь.
Аноним 19/03/15 Чтв 22:02:18 #450 №452578 
>>452277
>он возвращал мне 1 квартал 2015 и 2 последних квартала 2014

scope :quarter, ->(year) do
right = Date.new(year).end_of_quarter
left = (right - 6.months).beginning_of_quarter
where(date: left..right)
end

scope :annual, ->(years) do
where(date: years.to_a.map { |y| Date.new(y) }.map { |v| rand(v.beginning_of_year..v.end_of_year) })
end
Аноним 19/03/15 Чтв 22:04:08 #451 №452579 
>>452577
Быстрый.
Нормальное ООП в отличие Nodejs.
Нормальная многопоточность.
Отсутствие зоопарка непонятных сторонних библиотек - почти всё делается нативными.
Аноним 19/03/15 Чтв 22:06:16 #452 №452582 
14267919762610.jpg
>>452578
Ты король
Аноним 19/03/15 Чтв 22:09:08 #453 №452584 
>>446202
>нужны питонисты
Хуй знает, где ты откопал это говно, у меня в дсъе очень мало вакансий. Оно и понятно - язык говно.
Аноним 19/03/15 Чтв 22:09:13 #454 №452585 
14267921533700.jpg
>>452579
> Быстрый
> Fucks given: 0

> Нормальная многопоточность
define "Нормальная"
> JRuby для тредов, которые не цвета этого текста.

> Отсутствие зоопарка непонятных сторонних библиотек
> Отсутствие зоопарка сторонних библиотек
> Отсутствие сторонних библиотек
> Отсутствие библиотек
pic related
Аноним 19/03/15 Чтв 22:23:02 #455 №452591 
>>452579
Во всём отсасывает у Scala.
Аноним 19/03/15 Чтв 23:06:36 #456 №452617 
>>452591
Ради бога. И что?
>>452585
JRuby практически не применяется в проде. Это больше фановая игрушка.
Аноним 19/03/15 Чтв 23:39:25 #457 №452628 
>>452579
без дженериксов и лямбд
эта обработка ошибок
яб лучше на Nim посмотрел
Аноним 20/03/15 Птн 00:21:35 #458 №452641 
>>452628
>эта обработка ошибок
Непонятно что ты имеешь ввиду.
recover() это не raise/rescue, а скорее try/catch.

>без дженериксов и лямбд
Без дженериков - да.
Замыкания - https://gobyexample.com/closures
Аноним 20/03/15 Птн 00:56:02 #459 №452655 
немного нестандартный вопрос, но вроде комьюнити хорошее, спрошу тут:
Решил на досуге пописывать на рубях 2 года вебчик-хуебчик в аутсорсинге книжечку себе выбрал из шапки, после страниц 10 забил, попробовал написать скрипт чтоб качал файлы по ссылкам из txt-шнка в указанную папку - минут за 10 осилил, опять вернулось терпение читать дальше..
Для следующего практического забега решил накатить nokogiri и попарсить один сайтец, а уперся в то, что я под шиндой, а нокогири под шинду на 2.2 пока не работает и не собирается.
Вопрос - что из прыщей быстрей и легче всего поставить для рубей на виртуалку? Спасибо
Аноним 20/03/15 Птн 03:37:01 #460 №452676 
>>452655
Arch Linux проще всего.
Аноним 20/03/15 Птн 08:51:14 #461 №452704 
>>452655
Нахуя ты 2.2 поставил, дебил? Ставь 2.1, обновляй RubyGems, ставь Nokogiri и не еби себе мозги. В 2.2 новых функций не завезли, там только по ошибкам и сборщику мусора прошлись, тебе на это похуй должно быть.
Аноним 20/03/15 Птн 11:58:54 #462 №452734 
>>452655
Не слушай этого говноеда с виндой >>452704. Ставь ubuntu (а лучше xubuntu) на виртуалку, накатывай rvm и наслаждайся работой всего связанного с руби без проблем. Сам так уже джва года делаю.
Аноним 20/03/15 Птн 12:05:46 #463 №452738 
>>452655
distrowatch.com
Аноним 20/03/15 Птн 12:11:37 #464 №452740 
>>452655
>Вопрос - что из прыщей быстрей и легче всего поставить для рубей на виртуалку? Спасибо
ubuntu
>накатывай rvm
rbenv засирает меньше
>>452704
Этот вообще отмороженный. Благо хоть не 1.9.3 посоветовал.
Аноним 20/03/15 Птн 12:34:56 #465 №452747 
>>452740
>>452734
Сука, какие же вы поехавшие дегенераты. Он себе книжечку выбрал, ему похуй 2.1 там или 2.2 (там более синтаксических изменений между этими версиями вообще нет). Нахуй ему сраная прыщевиртуалка вообще? На 2.1 без проблем накатываются и нокогитри, и sqlite и всякая параша ещё, все равно он забросит этот руби через пару недель. И хуле ты вообще со своим 1.9.3 вылез, я его вообще не советовал.
Аноним 20/03/15 Птн 12:47:02 #466 №452751 
>>452747
>все равно он забросит этот руби через пару недель.
Когда не сможет поставить рубирейсер или какой-нибудь ещё гем на шиндошс.
Всё правильно посоветовали с убунтой.
Аноним 20/03/15 Птн 12:56:10 #467 №452753 
>>452751
http://nashbridges.me/ruby-windows-bootstrap
А это подойдет?
sageАноним 20/03/15 Птн 13:58:29 #468 №452773 
14268491099910.png
>>452747-кун,
Во-первых спасибо большое за совет, так и поступлю - прыщи на виртуалку потом накачу, сейчас интересней руби, а не ставить убунту
Во-вторых -
>все равно он забросит этот руби через пару недель.
У меня сложилось впечатление что ты какой-то илитист немножечко. Я 2+ года професионально пишу на Java, делаю фронтендец на GWT, хорошо ботаю js, в руби решил понаехать ради рельс, чтоб на коленке быстро пилить леваки, когда нужны будут моар денег.
Не суди всех вот так вот с 1 поста. Да и "пердолинг отпугнёт" - 2 года тырпрайзной джавы научили меня долго читать логи и пользоваться гуглом/стековерфлоу - этого, думаю, более чем достаточно.

Спасибо всем. Вы - няши
Аноним 20/03/15 Птн 14:19:50 #469 №452776 
14268503901060.jpg
>>449249
Смотрите что я нашел https://github.com/cschiewek/devise_ldap_authenticatable
Аноним 20/03/15 Птн 15:40:59 #470 №452802 
>>444102

Что за сайт?
Аноним 20/03/15 Птн 15:49:34 #471 №452805 
Рандомхер 23лвл, из знаний только html и css. Хочу начать учить я.п., выбор стоит медлу ruby и pyhon.
Ruby мне больше симпатизирует, но по нему меньше инфы и сложнее найти работку в офисе(требуют от 2 лет разработки и т.д., начальных вакансий нет).
Подскажите, почему вы выбрали руби?
Кулстори пришедших к у успеху приветствуeтся.
Аноним 20/03/15 Птн 15:52:46 #472 №452806 
>>452805
Потому что руби для человека, а не человек для руби.
Аноним 20/03/15 Птн 16:13:08 #473 №452818 
>>452773
Не, ну а хуле они приебались со своими убунтами, блядь. Ставь на винду, и если уже действительно будет чего-то не хватать, то тогда уже ставь виртуалку. А раз на джаве пишешь, можешь ещё и JRuby попробовать (там первый пререлиз 9к 2.2 поддерживает), и можно ебаться в идее со всякими рефакторингами и прочей мутной хуетой. И я вообще не хотел сказать, что ты плохой кодер или типа того, просто в 95% при изучении нового языка его быстро забрасывают к хуям, особенно если он не востребован.
Аноним 20/03/15 Птн 16:20:04 #474 №452825 
>>452806
пхп для обезьян, а питон для змей?
Аноним 20/03/15 Птн 16:22:27 #475 №452831 
>>452825
Для червей-пидоров
Аноним 20/03/15 Птн 16:35:33 #476 №452853 
>>452805
раз уж ты собрался писать для веб, то начни с js. он же тебе тоже будет нужен для frontend программ. серверные программы на js тоже можно писать, см. nodejs. если с nodejs не получится, то переключишься на ruby. возможно таким образом потратишь меньше времени.
Аноним 20/03/15 Птн 16:41:01 #477 №452859 
>>452818
>Не, ну а хуле они приебались со своими убунтами, блядь. Ставь на винду, и если уже действительно будет чего-то не хватать, то тогда уже ставь виртуалку.
Нет! Сначала зайди в этот тред и ещё разок спроси "а чо под виндой низя???".
sageАноним 20/03/15 Птн 16:49:16 #478 №452864 
>>452818
Пидорас ты конченый, заткнись уже.
Аноним 20/03/15 Птн 16:53:27 #479 №452869 
>>452805
>Подскажите, почему вы выбрали руби?
Синтаксис, экосистема.

>Кулстори пришедших к у успеху приветствуeтся.
1 год своих проектов и фриланса. Ещё 1 год на раскачку до энтерпрайза.
Аноним 20/03/15 Птн 16:54:35 #480 №452871 
>>452818
>Не, ну а хуле они приебались со своими убунтами, блядь
Точно, лучше костыли на винде городить. Cygwin наше всё, да?

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

Ты не устаёшь меня удивлять.
Аноним 20/03/15 Птн 17:25:04 #481 №452891 
>>452805
Двачую этого оратора, запилите кулстори. Через сколько меня возьмут хоть куда-то?
мимо изучаю RoR 2 месяца с нуля
Аноним 20/03/15 Птн 17:29:31 #482 №452893 
>>452891
Дай пизды, давай пизды, крепко давай пызды. Я хочу обратиться к тебе, читатель нашего журнала — расти истинным борцом. Занимайся спортом, ходи в качалку и наращивай мускулы. И пиздись. Пиздись от рассвета до заката и от заката до рассвета. Пиздись так, чтобы однажды, когда придет твой смертный час, не обоссаться со стыда. Чтобы сходя в могилу, не пришлось прятать глаза от детей и внуков. Чтобы честно сказать себе — я прожил жизнь не зря. Мне не было мучительно больно и обидно за бесцельно прожитые годы. Всю свою жизнь, от рассвета до заката и от заката до рассвета, я давал пизды.

Потом тебя возьмут.
Аноним 20/03/15 Птн 17:44:06 #483 №452894 
>>452864
Да пошел ты нахуй, хуле приебался, блядь?
>>452871
Какой нахуй Cygwin, сука, он и без него отлично работает. Дохуя самых популярных нативных пакетов заранее скомпилированы под шинду, а значит можно и без девкита RI ебаться с рубями.
> О как, интерпретатор влияет на рефакторинг.
Бля, ну идея, я же типа за IDE для джава-макак говорю. Ставишь руби плагин, MRI/JRuby и там всякие рефакторинги, генерация кода и прочий пиздец для дебилов.
Аноним 20/03/15 Птн 17:49:56 #484 №452895 
Скоро перекот, посоны.
Алсо, в ubuntu до сих пор apt-get ставит 1.9.3.
2.0 и выше в официальных репозиториях вообще нет.
В Arch завозят свежайшие версии быстрее всех, тащемта.
Одна печаль, под Hyper-V сложно арчик завести.
Поэтому пердолюсь с ubuntu и rvm.
Никому не советую.
Аноним 20/03/15 Птн 17:59:47 #485 №452900 
>>452895
Пердолься с rbenv. Может проще будет, я rvm не пробовал.
Аноним 20/03/15 Птн 18:00:13 #486 №452901 
>>452802
DOU.
>>452891
Плохие новости для тебя, новички будут сосать годами, а то и больше. Нужен опыт от года и выше, и знать овердохуя всего.
Аноним 20/03/15 Птн 18:14:24 #487 №452903 
>>452895
Арч-хуярч. Поставить rbenv и нужную версию руби – 2 минуты. Из реп никто не ставит.
Аноним 20/03/15 Птн 18:21:24 #488 №452906 
>>452901
https://dgosxlrnzhofi.cloudfront.net/custom_page_images/64/page_images/Rails_Competencies.png
Кстати, в тему. За 2 года пхп и 2 года рельс в той или иной мере знаю почти всё, кроме деплоймента. Этим занимаются у нас отдельные админы, поэтому всё, что дальше чем задеплоить проект или настроить CI - для меня тёмный лес.
Аноним 20/03/15 Птн 18:23:30 #489 №452908 
>>452903
>из реп никто не ставит
Нахуя они тогда нужны?
Аноним 20/03/15 Птн 19:40:04 #490 №452935 
Что бы такое накатить на руби, чтобы было как в http://akka.io/ ?
Типа там асинхронность, акторы, eventbus'ы, распределённость, и т.п.?
Аноним 20/03/15 Птн 19:49:46 #491 №452938 
>>452908
Руби никто не ставит из реп, а не вообще. Для этого есть миллиард причин, и самая главная — это не арч, не генту и не прочий блидингэдж.

мимопроходил
Аноним 20/03/15 Птн 19:53:54 #492 №452942 
>>452938
>Для этого есть миллиард причин
Называй

>это не арч, не генту и не прочий блидингэдж
И что?
Аноним 20/03/15 Птн 21:52:57 #493 №453006 
>>452942
> Называй
Совместимость. Если обновляешь что-то одно, то может понадобиться что-то еще другое обновить, а там уже дальше цепная реакция. В дистрибутивах вроде убунты процесс обновления очень медленный и довольно бюрократичный, и в целом всё обновляется только с инкрементом версии дистрибутива. На самом деле, оно даже и не упало никому на хуй так часто обновлять что-то. Очень сильно сомневаюсь, что в этом треде заметному количеству людей действительно будет необходим MRI 2.2.5, а 2.0.0 сильно помешает что-то сделать. Я сам только недавно задумался о том, нахуя мне нужны rvm/rbenv и уже как минимум на боевых серверах ставлю все из нормального репозитория.

> И что?
Хуй тебе в ебало — вот что.
Аноним 20/03/15 Птн 22:16:10 #494 №453019 
>>452935
>асинхронность
eventmachine
>акторы
celluloid
>eventbus
redis pub/sub
>распределённость
как сам напишешь - так и будет распределённость

> JVM
Jruby, только геморрой.
sageАноним 20/03/15 Птн 23:42:43 #495 №453072 
>>452903
Из реп ставят те, кто не разрабатывает, а использует готовые продукты.
Или те, кому не нужен зоопарк версий.
А в генте есть божественный eselect - позволяет выбрать версию руби тож.
Аноним 21/03/15 Суб 00:24:20 #496 №453089 
>>453072
>а использует готовые продукты.
Читай админы. Которым компиляция из сурсов или из нерепозитарных источников - это как чума (ОЙ ПРОБЛЕМЫ С ОБНОВЛЕНИЕМ)

Генту на проде используют только отчаянные.
Аноним 21/03/15 Суб 01:40:29 #497 №453110 
>>453089
> Генту на проде используют только отчаянные.
А харч? Тоже отчаянные, но не такие, как на генте? Полупокер?
Аноним 21/03/15 Суб 01:42:53 #498 №453114 
>>453089
У нас используют. Работает, потому что (в отличии от пердоликов, админящих локалхост) мир каждый день по три раза с разными юзами не пересобирают.
Аноним 21/03/15 Суб 01:43:58 #499 №453115 
>>453072
Админ локалхоста, съеби уже. Версии руби меняются исключительно средствами самого руби, поскольку их очень часто нужно иметь 2-3-n на одной машине.
sageАноним 21/03/15 Суб 01:47:22 #500 №453116 
>>453115
> Версии руби меняются исключительно средствами самого руби, поскольку их очень часто нужно иметь 2-3-n на одной машине.
> те, кто не разрабатывает, а использует готовые продукты.
> те, кому не нужен зоопарк версий.
читать научись, свитерок
Аноним 21/03/15 Суб 01:59:24 #501 №453120 
>>453072
> Из реп ставят те, кто не разрабатывает, а использует готовые продукты.
А для них явно была бы лучше самая последняя версия.
Аноним 21/03/15 Суб 02:00:59 #502 №453121 
>>453116
>зоопарк
Админ локалхоста такой админ локалхоста. rvm это не зоопарк, а штатное средство, если у тебя одному сайту нужен один руби, а другому другой. Ещё скажи что gcc-4.4 и gcc-4.7, лежащие вместе в /usr/bin - зоопарк, уёба.
Аноним 21/03/15 Суб 02:03:12 #503 №453124 
>>453121
> если у тебя одному сайту нужен один руби, а другому другой
... то это значит, что либо ты дебил, либо разработчики руби, т.к. не подумали об обратной совместимости.
Аноним 21/03/15 Суб 02:07:50 #504 №453125 
>>453124
Дебилы в том числе и разработчики ядра, поскольку в работающее ядро нельзя загрузить модуль, собранный версией gcc, отличающейся от той, которой собиралось само ядро и остальные модули.
Обтекай.
И да, все популярные языки для веба (пиздон, пхп) - имеют так или иначе несовместимые версии. И это нормально.
Зато у некрософта недокументированная багофича в апи позволяла запускать SimCity 1 (виндовый), имитируя багу маллока из первых Win 3.1. Потому что работа игры была завязана именно на эту багу. По крайней мере, в XP SP3 было так, на 64-битках начиная с дристы, не проверял
sageАноним 21/03/15 Суб 02:13:19 #505 №453126 
>>453121
> gcc-4.4 и gcc-4.7, лежащие вместе в /usr/bin - зоопарк, уёба.
да, зоопарк.
У меня только 4.7
sageАноним 21/03/15 Суб 02:14:11 #506 №453127 
>>453120
> самая последняя версия.
а разве в арче не так?
А лучше та версия с которой работает софт.
sageАноним 21/03/15 Суб 02:16:50 #507 №453129 
>>453121
> админ локалхоста
у тебя какая-то фиксация
> если у тебя одному сайту нужен один руби, а другому другой
то rvm не единственный способ
sageАноним 21/03/15 Суб 02:18:07 #508 №453130 
жопная боль одного свитера ИТТ
Аноним 21/03/15 Суб 02:28:33 #509 №453131 
>>453130
Сажешкольник, пердолящий генту на локалхосте, ИТТ.
Запусти XYUZE="a b c d -e" perdole world и иди спать, а то мамка заругает.
Аноним 21/03/15 Суб 02:29:39 #510 №453132 
>>453125
Казалось бы, при чём тут ядро, и юзерлевельная скриптопараша. Почему-то с джявой таких проблем не возникало.
Аноним 21/03/15 Суб 02:30:38 #511 №453133 
>>453126
Потому что ты каждый раз после попердолек ребутишь машину. А у некоторых и ядро, собранное старой версией gcc, вполне в работе. Есть и новое, но чтобы его загрузить, надо сначала ребутнутся. Хотя откуда днищешкольнику с пердолингом ноута знать, что такое аптайм.
Аноним 21/03/15 Суб 02:31:36 #512 №453134 
>>453132
Зато джява благодаря своим гигатоннам легаси и памяти жрёт как не в себя. Энжой ёр цомпилед онце рун еверувхере.
Аноним 21/03/15 Суб 02:35:25 #513 №453135 
>>453134
Это не баг, а фича же. Она сразу выделяет 300-1000 метров памяти и потом просто распределяет программе.
При этом со всеми библиотеками, свингом, джявафх и легасиговном JRE весит всего 30 МБ.
Аноним 21/03/15 Суб 10:34:18 #514 №453178 
>>453133
свиерок, прикинь, я свою рабочую машину тоже раз в неделю минимум ребучу
я ведь код не на сервере пишу)
и версия мне рубей одна нужна - под текущий проект
так что вернись в свой серверный шкаф
Аноним 21/03/15 Суб 12:42:03 #515 №453230 
>>453006
Значит 1.9.3 пятилетней давности это норма в современных дистрибутивах. Все ясно с убунтоебами
Аноним 21/03/15 Суб 18:23:15 #516 №453342 
>>452893
Неужели всё так плохо?
Аноним 21/03/15 Суб 22:38:04 #517 №453473 
>>453342
Вообще-то это в любой области так. Если хочешь стать успешным - пиздись от рассвета до заката и от заката до рассвета.
Аноним 23/03/15 Пнд 11:46:36 #518 №454000 
>>453110
Обычно это либо CentOS либо Ubuntu/Debian.
В особых случаях BSD.
Аноним 24/03/15 Втр 02:03:52 #519 №454383 
>>452906
>>https://dgosxlrnzhofi.cloudfront.net/custom_page_images/64/page_images/Rails_Competencies.png
Сейчас это уровень джуна ?
Поясните.
Аноним 24/03/15 Втр 09:10:15 #520 №454434 
Котаны, вопрос к вам имею.

Есть rake task, который должен создавать запись в бд.


namespace :zalupa
desc "Enlarge little pipka"
task enlarge: :environment do
@product = Product.create(:title => 'Zalupa')
end
end

запускаю таск rake zalupa:enlarge RAILS_ENV=production
и получаю хуй ;(

В консоли:
(0.2ms) BEGIN
(0.2ms) ROLLBACK
"#<Product id: nil, title: \"Zalupa\">"

Пробовал через new/find_or_initialize. В модели убирал нахуй все валидации. Куда копать?
Аноним 24/03/15 Втр 16:46:07 #521 №454547 
>>453129
>то rvm не единственный способ
chruby тебе в жопу
Аноним 25/03/15 Срд 13:14:35 #522 №454863 
>>441544
Работаю в связке Ruby+FXRuby. Что надо прописать для того, чтобы вместе с окном при запуске проекта не запускалась командная строка. Пока что работаю на ШинХР.
Аноним 25/03/15 Срд 17:31:56 #523 №454991 
>>454863
>Работаю в связке Ruby+FXRuby.
Ну и мудак!
Аноним 25/03/15 Срд 17:54:10 #524 №455003 
>>454863
> Пока что работаю на ШинХР.
Ну и мудак!
Аноним 25/03/15 Срд 19:39:47 #525 №455058 
Анон, что за хуйня? Ввод и вывод кириллицы на прыщах происходит без проблем, как только запускаешь на Виндовс(7, 8, ХР) - каракули. #encodin/coding: utf-8 не спасает, смена кодировки в редакторе либо засерает весь код либо не помогает. Как бороться с этой хренью?
Аноним 26/03/15 Чтв 18:24:47 #526 №455381 
>>455058
>>454863

у вас одна проблема на двоих, антуаны
Аноним 29/03/15 Вск 18:01:01 #527 №456642 
Суп пр.
Допустим, делаю гем, который добавляет экшоны в контроллеры. Как подпихнуть в таблицу роутов эти самые экшоны?
Аноним 02/04/15 Чтв 08:28:46 #528 №457643 
>>456642
mount Pizda::Engine, :at => '/pizda'
Аноним 04/04/15 Суб 11:58:02 #529 №458685 
Сап, у меня в приложении есть авторизация в вк, но вк высылает аксесс_токен только на тот домен, который указан в настройках приложения. Как мне тестить приложение на локалхосте?

Сейчас пытаюсь заюзать ngrok, но чет вк возвращает
> redirect_uri has wrong domain
В настройках приложения в вк поставил адрес сайта http://<...>.ngrok.com/ и домен ngrok.com
Аноним 04/04/15 Суб 17:20:03 #530 №458809 
14281572032510.jpg
>>458685
бамп
Мамин Рубист 06/04/15 Пнд 01:28:27 #531 №459674 
Есть ли смысл учить чистый Руби на КодАкадеми?
Аноним 09/04/15 Чтв 17:03:51 #532 №461571 
Пацаны, привлекает руби, хочу выбрать как 1 язык для обучения, можете рассказать, что такое рельсы, почему нет возможности обрабатывать память, насколько быстро работает с массивами? Можете ли привести примеры известных программ работающих на руби?
Аноним 10/04/15 Птн 16:32:12 #533 №462007 
>>461571
Cука, за день никто не ответил.
Аноним 12/04/15 Вск 13:21:12 #534 №462791 
>>461571

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

>>462007
я неделю не заходил, 5 постов появилось. это не пхп по популярности, это лучше.
Аноним 13/04/15 Пнд 21:22:54 #535 №463476 
14289493740600.png
Анон, помоги пожалуйста. Есть РСпек, который не смог. Могу запустить им пусто файл или файл с чистым Руби. При запуске спека жалуется на отсутствие библиотек, прямоты моих рук и качественной жизни. Скрин прилагаю. Гугление стаковерфлоу не дало ответа, советы схожих тем применил, не помогло. Что делать?
Бочку соснул, хуйцы сделал
Аноним 14/04/15 Втр 13:18:56 #536 №463729 
>>463476
спек покажи-то
и не соси хуйцов больше
Аноним 14/04/15 Втр 22:36:32 #537 №463934 
>>463729
require "spec_helper"
require "zombie"

describe Zombie do
it "is named Ash"
end

Скачал с теструби набор упражнений. Ошибка эта везде. gem install appname не помогло, гемфайл не появляется
Аноним 15/04/15 Срд 00:13:00 #538 №463961 
>>463934
так всё правильно! твой спек (почти) работает.

тебе нужен zombie.rb в котором собсно зомби описан. внимательнее читай уроки, от которых качаешь файлы
Аноним 15/04/15 Срд 00:34:44 #539 №463967 
>>463961
спек должен запуститься с надписью типа успешно:0, провалено:1, ожидается:0. При запуске работающего спека такая же фигня. Выше (где правильный текст) запуск пустого файла.
Аноним 15/04/15 Срд 13:29:24 #540 №464094 
>>463967
>>463934
>>463476

http://stackoverflow.com/questions/12576065/why-does-this-not-work-in-rspec-zombie-should-not-be-valid

хз как ты гуглил
comments powered by Disqus

Отзывы и предложения