Сохранен 509
https://2ch.hk/pr/res/366707.html
24 декабря Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!
Ruby [on Rails] Срд 02 Июл 2014 18:31:51  #1 №366707 
1404311511960.png

FAQ

1. C чего мне начать, чтобы стать рубистом?
Отличным началом будет Eloquent Ruby. Для тех, кто хочет сразу понять суть - Why's (Poignant) Guide to Ruby.

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

Можно пройти руби онлайн - 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
Для дотошных читателей есть The Rails 3 Way.
API http://api.rubyonrails.org

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

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. В чём писать код?
Vim, Sublime Text 2, TextMate, GNU Emacs. Для особо упоротых энтерпрайз-ребят есть rubymine, плагины к эклипс и нетбинс.

Предыдущие треды:
http://2ch.hk/pr/arch/res/19239.html
http://2ch.hk/pr/arch/res/68985.html
http://2ch.hk/pr/arch/res/80926.html
http://2ch.hk/pr/arch/res/85351.html
http://2ch.hk/pr/arch/res/104148.html
http://2ch.hk/pr/arch/res/128968.html
http://2ch.hk/pr/arch/res/172693.html
http://2ch.hk/pr/arch/res/189237.html
http://2ch.hk/pr/arch/res/207421.html
http://2ch.hk/pr/arch/res/222152.html
http://2ch.hk/pr/arch/res/232635.html
http://2ch.hk/pr/arch/res/238928.html
http://2ch.hk/pr/arch/res/247175.html
http://2ch.hk/pr/arch/res/253533.html
http://2ch.hk/pr/arch/res/260762.html
http://2ch.hk/pr/arch/res/266493.html
http://2ch.hk/pr/arch/res/278287.html
http://2ch.hk/pr/res/313906.html

Аноним Срд 02 Июл 2014 19:09:56  #2 №366714 

>>366707
>Для тех, кто хочет сразу понять суть - Why's (Poignant) Guide to Ruby.
Половину прочитал и дропнул. Лисички конечно милые, но я Ruby хочу изучать, а не всякий бред читать.

Нашёл такой гайд: http://ruby.learncodethehardway.org/book/
Кто-нибудь пробовал / может отписать?

Аноним Срд 02 Июл 2014 19:26:56  #3 №366716 

>>366714
Лол, гайд старый и не мой. И гайд Вая тоже говно как и он сам, learncodethehardway тоже шлак. Читай лучше Eloquent Ruby или The Well-Grounded Rubyist.

Аноним Срд 02 Июл 2014 19:37:30  #4 №366718 

Могу порекомендовать Programming Ruby и POODR. Самые лучшие книги. Можешь попутно порешать задачки с rubyquiz.com.

Аноним Срд 02 Июл 2014 19:37:33  #5 №366719 

>>366716
> Eloquent Ruby
Если Eloquent Ruby создан по образу и подобию Eloquent JavaScript, то я умру со скуки.

Аноним Срд 02 Июл 2014 19:41:55  #6 №366722 

>>366719
Лол тоже дропнул Eloquent JavaScript. Пиздец какая унылая книжка, но ER точно не такой.

Аноним Срд 02 Июл 2014 19:45:11  #7 №366724 

>>366718
> rubyquiz.com
> no longer the site for the current challenges
Есть задачник поактивнее?

Аноним Срд 02 Июл 2014 20:11:54  #8 №366729 

>>366724
Есть вот этот: https://www.hackerrank.com/
Ну и r/dailyprogrammer на реддите. Но к чему тебе активность? Самое главное челлендж, плюс там есть решения на Руби, хоть и на старой версии, но всё же могут быть полезными для разбора других подходов к решению задачи.

Аноним Срд 02 Июл 2014 22:51:07  #9 №366776 

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

Аноним Чтв 03 Июл 2014 00:15:44  #10 №366818 

>>366776
> а еще?
Это — http://ruby-metaprogramming.rubylearning.com/

Аноним Птн 04 Июл 2014 05:00:17  #11 №367131 

Рельсоняши, есть одна проблема.
Есть сущности "статья" и "комментарий". Статья has many комментариев.

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

Вот примерная реализация:
<% Comment.all.each do |comment| %>
<%= Article.find(comment.article_id).name %>
<%= comment.text %>
<% end %>

Проблема в том, что создаётся столько sql запросов, сколько вызовов Article.find. Поискал по поводу n + 1 problem, но не выходит через includes сделать, т.к. для этого нужно, чтобы статья принадлежала комментарию, а у меня наоборот.

Аноним Птн 04 Июл 2014 07:46:13  #12 №367135 

>>367131

Может моего скилла не хватает и вру, но зачем файнд? Можно ж просто коммент.артикль.нейм же... Связь билон_ту у комментарии к артиклю только поставьте же...

Аноним Птн 04 Июл 2014 09:59:46  #13 №367144 

Есть подобие твитера, хочу запилить @replies, ткните носом, куда читать.

Аноним Птн 04 Июл 2014 11:59:01  #14 №367165 

>>367131
@comments = Comment.joins(:article).includes(:article)
Что-то типа того.
Also, используй slim вместо erb.
Also, запросы в вью — это плохо, пньнятненько?

Птн 04 Июл 2014 13:12:50  #15 №367175 

>>367131>>367165
controller:
@comments = Comment.joins(:article).includes(:article) #потому что это должно быть в контроллере (читай за MVC)
View:
- @comments.each do |comment|
= comment.article.name #потому что ООП
= comment.text

Аноним Птн 04 Июл 2014 13:57:51  #16 №367189 

>>367135
>>367165
>>367175
Спасибо большое, что-то ступил и не подумал, что belongs_to тоже создаёт методы для связи с статьёй.
А всё в представлении сделал, чтобы быстрее написать пример сюда.

Аноним Птн 04 Июл 2014 14:16:49  #17 №367198 

>>367165
> slim
absolutely disgusting.png

Аноним Птн 04 Июл 2014 15:11:17  #18 №367211 

>>367165
>Also, используй slim вместо erb.
Вся суть рельсо-няш: главное не результат, а оформление.

Аноним Птн 04 Июл 2014 20:57:17  #19 №367289 

>>367144
бумп, на стаковерлоу нашел пару советов, но они аутдейтед.

Аноним Суб 05 Июл 2014 05:17:08  #20 №367420 

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

Суб 05 Июл 2014 07:44:04  #21 №367428 
1404531844144.jpg

Спрошу здесь. Так как тут опытные рубисты %%ололо%

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

так вот. как шарить между разными процессами (скрипт, вебморда) коннекшен инстанс к базе. (единоверенно с leveldb может работать только один процесс)

Аноним Суб 05 Июл 2014 08:26:59  #22 №367430 

>>367428 сажа приклеилась

Аноним Суб 05 Июл 2014 09:55:35  #23 №367440 

>>367420
https://github.com/angular/angular.js/blob/aa268560064e5875bd471da3f7d1ebc2f9e6b3b7/src/ngSanitize/filter/linky.js

Аноним Суб 05 Июл 2014 16:54:58  #24 №367556 

>>367440
А на рубях можно? Я не силен в жс.

Аноним Вск 06 Июл 2014 01:07:51  #25 №367696 

Вот например есть такой код, как сделать, что б он еще и @name конвертил в ссылку на юзера?


def linkify_hashtags(hashtaggable_content)
regex = SimpleHashtag::Hashtag::HASHTAG_REGEX
hashtagged_content = hashtaggable_content.to_s.gsub(regex) do
link_to($&, hashtag_path($2), {class: :hashtag})
end
hashtagged_content.html_safe
end
Аноним Пнд 07 Июл 2014 12:38:44  #26 №368155 

>>367556
https://github.com/twitter/twitter-text-rb

Аноним Пнд 07 Июл 2014 13:32:14  #27 №368163 

Поясните за гуй: shoes vs JRuby vs IronRuby

Аноним Пнд 07 Июл 2014 13:37:39  #28 №368165 

>>368163
ты что совсем ?
shoes это гуй, жруби это имплементация руби над жвм, а айронруби наж клр, айронруби скорее мёртв. жруби в продакшене с оракловским трюфелем.
шуз (4) обёртка над свт.
обыкновенный дсл над гуевскими либами, относительно лучше чем остальные, ещё есть из вроде живых (~полгода назад смотрел) фок4руби

Аноним Пнд 07 Июл 2014 13:42:08  #29 №368166 

>>368165
шуз это свт?
я имел в виду JRuby + JavaFX или Swing
Iron ruby + Дотнеттовский гуй

Аноним Пнд 07 Июл 2014 15:20:46  #30 №368194 

>>368163
Разве гуй для Руби уже не утонул?

Аноним Пнд 07 Июл 2014 16:19:01  #31 №368212 

>>368194
Ну чего джава FX тонуть?

Аноним Пнд 07 Июл 2014 16:39:07  #32 №368220 

>>368163
>гуй
>руби
/0
как бы мне хотелось чтобы у руби были такие же либы для qt как и у питона.

Аноним Пнд 07 Июл 2014 16:47:20  #33 №368227 

В чём писать код: Vim, Emacs или Sublime Text 2? В чём пишут местные рубисты? Я только начинаю перекат в этот ваш Ruby, и со всех сторон крики "Emacs, Emacs!", но я попробовал его, и он как-то не очень юзер-френдли. Есть ли смысл упарывать его, вникать, или ST2 не хуже? я уже понял, что Emacs БОЛЬШЕ, чем текстовый редактор, но пригодится ли это?
inb4: пиздуй в /s/

Аноним Пнд 07 Июл 2014 17:09:24  #34 №368242 

>>368227
пиздуй в /b
Если еmacs показался не юзер-френдли, то вим вообще пиздецом каким покажется если не правильно подойти к обучению. Пиши в чем тебе удобно. Завтра рубисты говно будут есть инб4 они уже едят, ты тоже попробуешь говно на вкус?

мимовимобог

Аноним Пнд 07 Июл 2014 17:47:56  #35 №368249 

>>368155
Ну так это для твитора. Здесь просто заменяет все @слова на ссылку на твитер twitter.com/слово. А мне надо, что бы он сначала искал юзера по нику, а затем заменял на ссылку на него.

Аноним Пнд 07 Июл 2014 18:32:12  #36 №368263 

>>368227
Мне Emacs нравится только как текстовый редактор. Во всё остальное он тоже умеет, но как-то неудобно. Разве что в тетрис поиграть. Даже терминал держу отдельный.

Аноним Пнд 07 Июл 2014 18:55:48  #37 №368275 

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

>>368242
Если авторитетные рубисты, то почему бы и нет? Им как никак виднее.

Аноним Пнд 07 Июл 2014 19:11:40  #38 №368279 

>>368166
из жруби можно испоьлзовать и свинг (есть дсл) и жавафикс, и свт но там вроде либа умерла

Пнд 07 Июл 2014 19:58:39  #39 №368303 

>>368275
>Им как никак виднее.
хуйнее

Аноним Втр 08 Июл 2014 00:00:22  #40 №368388 

>>368279
Похоже это выбор ровного пацана.

Аноним Втр 08 Июл 2014 17:46:47  #41 №368638 
def set_log_file
date = Time.new.utc
dir = "#{Rails.root}/log/#{Rails.env}/#{date.year}/#{date.month}/"
FileUtils.mkdir_p(dir)
log_file_path = dir + "#{date.day}.log"
FileUtils.touch log_file_path
LogStasher.logger = Logger.new log_file_path
LogStasher.logger
end

Анон, почему после этих манипуляций у меня какаето херь с правами происходит? С правами для папок и для файлов. Приходится в ручную сетить всем 777. Как создавать дерикторию и сразу давать сетить ей премишены? Подскажите.
Аноним Втр 08 Июл 2014 18:11:22  #42 №368647 

>>368638
FileUtils.mkdir_p(dir,:mode => 0700)
отакот работает

Аноним Срд 09 Июл 2014 02:01:04  #43 №368897 

https://www.coursera.org/course/webapplications
starts in a month

Аноним Срд 09 Июл 2014 03:01:55  #44 №368919 

>>368897
http://guides.rubyonrails.org/getting_started.html

Читается за вечер.

Срд 09 Июл 2014 03:12:41  #45 №368922 

рабиняши динамикопоняши

Аноним Срд 09 Июл 2014 04:16:30  #46 №368930 

>>368922
раби - кораби

Срд 09 Июл 2014 04:37:40  #47 №368931 

>>368930

Аноним Срд 09 Июл 2014 06:47:15  #48 №368933 

>>368897
Сэнк ю, мистер. Ай вил веит.

Аноним Срд 09 Июл 2014 14:43:42  #49 №368991 

Прочитал туториал Хартла, но в голове как-то мало отложилось. Че теперь делать, чтобы разобраться, блог пилить?

Аноним Срд 09 Июл 2014 14:51:24  #50 №368993 

>>368991
Я после читал
edgeguides.rubyonrails.org/getting_started.html (en)
http://rusrails.ru/getting-started-with-rails (ru)
и делал свою википедию.

Аноним Чтв 10 Июл 2014 19:54:54  #51 №369298 
1405007694531.jpg

>>366707
Рубака, пишущий свой уникальный аналог pcpartpicker'a сайт по подбору комплектующих для пекарни, снова с вами. Вылезла проблема: когда юзер удаляет из валидной пекарни проц, пекарня сохраняется и является по прежнему валидной. Если запустить проверку валидности вручную (метод publish), все ошибки находятся и статус нормально откатывается. Как я понял, все проблемы таятся в использовании Mongoid'a, который производит валидацию только изменившихся полей. А, поскольку, у связи has_one-belongs_to foreign_key хранится только у child'a, то c изменением PackSet'a ничего не изменяется. Итак, проблема - заставить Mongoid проводить валидацию при каждом сохранении.

class Computer

  include Mongoid::Document
...
field :state, default: 'new'
...
has_one :cpus, class_name: 'PackSet', inverse_of: :cpus
...
with_options if: :published? do |c|
c.validates_presence_of :cpus
...
c.validates :cpus_validator
...
end

after_validation :check_state
...
def publish
self.state = 'published'
self.save && self.published?
end

def published?
return self.state == 'published'
end

def make_edited
self.state = 'edited'
self.save
end
...
def cpus_validator
if motherboard && cpus.present?
errors.add(:cpus, "Not enough cpu sockets") if cpus.count > motherboard.number_of_sockets
cpus.each do |cpu|
errors.add(:cpu, "Processor socket type mismatch") unless cpu.socket == motherboard.socket
end
end
end
...
def check_state
if self.errors.any?
self.violations = errors.full_messages
self.make_edited
elsif self.published?
self.violations = []
end
return true
end
Чтв 10 Июл 2014 21:10:25  #52 №369318 

>>369298
>mongodb
>has_one
>foreign key
все_ебанулись.жпг

Алсо, у монгоида нет хука after_save или before_save? Он же как бы AR, только для монги.

Аноним Чтв 10 Июл 2014 21:27:32  #53 №369323 
1405013252612.jpg

>>369318
Хуки есть (строчка after_validation :сheck_state), но вот что дальше делать конкретно с before_save - не соображу, т.к. если документ - инвалид, до этого хука дело не дойдет.

Аноним Чтв 10 Июл 2014 22:45:02  #54 №369342 

>>366707
>Vim, Sublime Text 2, TextMate, GNU Emacs
Посмотрел бы я, как ты работаешь с проектом на полтора миллиона строк в виме.
А вообще, руби-бляди, есть ли причины использовать руби на сервер-сайде вместо пхп, кроме ЕТА КРУТА И МОДНА КАРОЧЬ Я СЛЫШАЛ КРУТЫЕ ПРАГРАМИСТЫ ПИШУТ НА РУБИ А НА ПХП ТОЛЬКО ЛАХИ))?.
Пхп ведь уделывает руби по быстродействию, удобству сишного API, потреблению памяти, низкоуровневости там, где это надо, простоте разворачивания контуров. Если сравнивать на уровне фреймворков - тот же phalcon уделывает рельсы и по фичам, и по архитектуре, и по быстродействию. В серьезном хайлоаде никому и в голову не придёт использовать руби.
Так зачем нужен руби, скажите мне, руби-бляди?

Аноним Чтв 10 Июл 2014 23:29:18  #55 №369355 

>>369342
Фрактал отсоса закукарекал.
Не касаясь проблем языка - смотри, рельсы они одни. Не знаю как там твой falcon, но в раше при выборе пхп ты будешь настраивать битриксы и вордпрессы с джумлой. И если выбирать между рельсами и битриксом, по-моему выбор очевиден.

Аноним Птн 11 Июл 2014 00:09:22  #56 №369377 

>>369355
хачую. сам в прошлом битриксоид.
А вообще не отвечай этому толстяку

Аноним Птн 11 Июл 2014 01:35:21  #57 №369402 

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

Аноним Птн 11 Июл 2014 02:14:00  #58 №369410 

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

Аноним Птн 11 Июл 2014 02:25:41  #59 №369413 

>>369410
Да не, всё отлично, язык замечательный, с каждой новой версией писать приятнее и приятнее, вон в 5.5 запилили встроенный opcache, скорости неземные просто, питон с руби и раньше сосали в плане быстродействия, теперь остались еще дальше позади. У тебя аргументы будут или ты тоже СЛЫШАЛ и ЧИТАЛ НА ХАБРЕ?

Аноним Птн 11 Июл 2014 02:46:40  #60 №369417 

>>369413
Я вообще мимо проходил. Но ты давай, продолжай свой аутотренинг.
>скорости неземные
>скрипт
Скрипты все равно не догонят компилируемые языки по производительности, как ты не тужься. Они не для этого сделаны и их выбирают не по этому фактору.

Птн 11 Июл 2014 02:47:02  #61 №369418 

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

Аноним Птн 11 Июл 2014 02:55:24  #62 №369419 
1405032924061.jpg

>>369418
> А теперь иди нахуй, толстяк.

Птн 11 Июл 2014 03:06:10  #63 №369420 

червь-пидор > червь-толстяк >>> червь-программист

Аноним Птн 11 Июл 2014 08:26:56  #64 №369429 

Имеется такой код:

empty_struct = OpenStruct.new(items: 0, low: 0, high: 0, products: [])
@result = OpenStruct.new(restaurants: empty_struct.clone, systembolaget: empty_struct.clone, export: empty_struct.clone)

Также имеется метод product.alc_content, который возвращает :low или :high в зависимости от уровня содержания алкоголя. Мне нужно добавить product.quantity в @result.что-то.low или @result.что-то.high. Как сделать это, используя send?
Аноним Птн 11 Июл 2014 08:37:49  #65 №369430 

>>369429
Разобрался.

@result.systembolaget.send("#{variant.alc_content}+=", product.quantity)
Аноним Птн 11 Июл 2014 08:40:51  #66 №369431 

>>369430
Не разобрался.

Аноним Птн 11 Июл 2014 13:07:31  #67 №369462 
1405069651291.jpg

>>369298
Решилось через использование state_machine для управления state'ом.

Аноним Суб 12 Июл 2014 00:30:49  #68 №369647 

Дно снова на связи.
Молю о помощи. 2 дня головой о монитор уже бьюсь.

http://stackoverflow.com/search?tab=newest&q=capybara

Суть: при ране тестовых сценариев через капибару требуется запускать хром в инкогнито моде.
Имеется - хром запускается, но в обычном моде — на настройки кладет хуй,

Аноним Суб 12 Июл 2014 01:00:19  #69 №369654 

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

Аноним Суб 12 Июл 2014 01:46:51  #70 №369669 
1405115211082.jpg

>>369462
Не прошло и суток, как вылезла новая ошибка: перестала работать парсилка данных с Yandex Market. При попытке

doc = Nokogiri::HTML(open('http://market.yandex.ua/model-spec.xml?modelid=10384313&hid=91019&CMD=-RR%3D0%2C0%2C0%2C0-VIS%3D8070-CAT_ID%3D651600-EXC%3D1-PG%3D10-PF%3D1801946~EQ~sel~5800975-PF%3D2142444694~EQ~sel~x1121255714'))

Кидает OpenURI::HTTPError: 404 Not Found. Есть подозрение, что ЯндексМаркет вычислил, что я нагло таскаю с него данные и забанил меня по айпи пидор. Как обходят баню бывалые написатели грабберов?
Аноним Суб 12 Июл 2014 02:38:50  #71 №369673 

>>369669
У них нет офф апи?

Аноним Суб 12 Июл 2014 03:15:51  #72 №369674 
1405120551264.png

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

Аноним Суб 12 Июл 2014 04:23:51  #73 №369689 

>>369674
Так ты каждый раз когда запускал тесты делал запрос на яндекс?

Аноним Суб 12 Июл 2014 12:19:03  #74 №369734 
1405153143436.jpg

>>369689
Да, 9 товаров за все тесты в общей сложности запрашивалось.

Аноним Суб 12 Июл 2014 15:29:03  #75 №369758 
1405164543781.jpg

>>367165
В чём суть слима? Я не понимаю. Как и ангуляра.
мимоперекатывался

Аноним Суб 12 Июл 2014 17:53:01  #76 №369798 

>>369734
Используй fakeweb для таких тестов. Сделал один раз запрос, получил что тебе нужно, дальше используешь эти данные через fakeweb

Аноним Суб 12 Июл 2014 18:23:37  #77 №369802 

Есть модель User и модель Message, в которой два foreign_key: sender_id и receiver_id.
Как одним sql запросом получить всех юзеров, которые сообщались с определенным юзером, отсортированных по наиболее свежим сообщениям: т.е. messages, с одним из полей равным некоторому id, берутся в порядке убывания created_at, и собираются юзеры, на которых указывает оставшееся поле.

Аноним Суб 12 Июл 2014 22:05:39  #78 №369850 
1405188339735.jpg

>>369798
Спасибо, лучей хаоса тебе:3

Аноним Суб 12 Июл 2014 22:09:17  #79 №369852 
1405188557753.jpg

>>369850
И на будущее, что делать, если yandex market забанит продакшн сервер?

Аноним Суб 12 Июл 2014 23:31:29  #80 №369874 

>>369852
Используй их апи и не превышать ограничения, а не парсит самому.

Аноним Вск 13 Июл 2014 23:19:52  #81 №370091 

Учусь в универе, и хочу работать с веб-программированием.
Сейчас изучаю руби и рельсы, всё понятно и нравится, только мучает ощущение, что потом с рельсами хуй где работу найду в своём мухосранске.
Я слегка запутался в этом, что посоветуете, перекатываться в сторону пыха/джавки пока есть время или всё же продолжать учить рельсы и всё будет хорошо?

Аноним Пнд 14 Июл 2014 00:00:56  #82 №370096 

>>370091
Зайди на hh своего мухосранска и поищи по вакансиям - php, python, а потом руби, и сделай выводы. Если по пхп и пистону еще можно что-то найти, то руби - удел мамкиных борщехлёбов, в продакшене он никому не нужен. В моём городе-миллионнике десятки вакансий по пистону/пыхе, и ни одной по руби.

Аноним Пнд 14 Июл 2014 01:01:16  #83 №370105 

>>370096
В москве под руби достаточно вакансий, есть даже для стажеров без опыта.

Аноним Пнд 14 Июл 2014 01:52:57  #84 №370111 

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

Аноним Пнд 14 Июл 2014 02:08:43  #85 №370115 

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

Аноним Пнд 14 Июл 2014 02:21:38  #86 №370117 

>>370115
даже хз как параллельно то. То туда, то сюда переключаться, это ж жестко.

Аноним Пнд 14 Июл 2014 09:36:38  #87 №370137 

>>370105
При этом на питоне и пхп нормальную работу можно найти за день.
мимо-раньше-руби-теперь-пхп

Аноним Пнд 14 Июл 2014 13:56:53  #88 №370178 

Двачую, рубипараша не нужна.

Аноним Втр 15 Июл 2014 03:49:24  #89 №370388 

>>370137
> При этом на питоне и пхп нормальную работу можно найти за день.
Ну вообще охуеть.

Аноним Втр 15 Июл 2014 12:50:36  #90 №370434 

>>370388
Ты так говоришь, как-будто тебе надо каждый день новую вакансию находить и менять работу. Кому надо, тот найдет.

Аноним Втр 15 Июл 2014 14:58:59  #91 №370456 

>>370434
Кому надо, тот найдет работу хоть на брейнфаке.

По факту же работы на руби в мухосрансках примерно столько же, сколько на питоне, пхп-фреймворках и прочих джаваскриптах (expressjs, angular и т.п.). 90% мухосранского IT рынка – это говностудии на джумлах и вордпрессах.

Мухосранских специалистов, которые действительно что-то умеют можно по пальцам посчитать. Остальные заполняют 90% вакансий говностудий, где настраивают плагины для вордпресса и пишут "на jquery".

Аноним Втр 15 Июл 2014 18:07:06  #92 №370508 

>>370456
какая же ты няшка

Аноним Втр 15 Июл 2014 18:20:30  #93 №370516 

Помогите с метапрограммированием, плиз.
Есть у меня класс с такими методами: http://pastie.org/private/dn4vmbrhgvs20wtbk4x1sw
Теперь нужно сделать то же самое, но для других классов, например, Job. Я создал класс Importable, от которого буду наследовать существующий класс и Job, но не врубился, как сделать, чтобы в них обоих был метод с разнными переменными.

Аноним Втр 15 Июл 2014 18:27:22  #94 №370520 

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

Аноним Втр 15 Июл 2014 18:54:00  #95 №370529 

>>370516
Че ты несешь вообще? Какое метапрограммирование?
Запихни свои методы в модуль, потом делай инклюд в нужных тебе классах.
>чтобы в них обоих был метод с разнными переменными.
вут?

Аноним Втр 15 Июл 2014 18:57:19  #96 №370530 

>>370529
Я уже зделал, спасибо. Обошлось без модулей.

Аноним Втр 15 Июл 2014 19:21:54  #97 №370536 

Посоветуйте лучший способ изучить Rails.

Сейчас изучаю по http://railstutorial.ru/
В книги немало положительных моментов - например, приучает к написанию тестов до начала написания кода.
Но совершенно ничего нет по архитектуре проекта. Создаются какие попало контроллеры, потом криво объединяются (как вам идея все статические страницы описывать одним контроллером?).
Оно и понятно, книга для вчерашних php-макак.

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

Аноним Втр 15 Июл 2014 20:21:44  #98 №370541 

>>370536
>какие попало контроллеры, потом криво объединяются
Давай поподробнее, в чем проблема.

>как вам идея все статические страницы описывать одним контроллером?
Ты считаешь, это плохая идея? Почему?

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

Аноним Втр 15 Июл 2014 20:31:00  #99 №370544 

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

Аноним Втр 15 Июл 2014 20:33:37  #100 №370548 

>>370541
>какие попало контроллеры, потом криво объединяются
>Давай поподробнее, в чем проблема.
Собственно, проблема в этом:

>как вам идея все статические страницы описывать одним контроллером?

А по поводу
>Ты считаешь, это плохая идея? Почему?

Пусть сначала я сделал страницу Help с ответами на вопросы по сайту в рамках контроллера StaticPages. Потом я организовал на ресурсе службу технической поддержки и хочу добавить на страницу Help возможность задавать вопросы в тех. поддержку (как вконтакте). Уже не статическая страница, а весьма интерактивная.

Мне что, просто перенести существующий метод help в новый контроллер и развивать уже его (+ немного поправить маршруты)? Если так и делается, то всё нормально. Я просто не знаю, потому и спрашиваю.

Аноним Втр 15 Июл 2014 20:34:55  #101 №370550 

>>370456
2014 год на дворе - мир одной мухосранью не ограничен.

Аноним Втр 15 Июл 2014 20:35:38  #102 №370553 

>>370544
>В рельсах вообще мало что остается в голове если только читать всякие уроки.
Ну я стараюсь изучать вывод команды generate для различных ресурсов, чтобы представлять структуру проекта и как всё взаимодействует.

Аноним Втр 15 Июл 2014 20:38:51  #103 №370554 

>>370548
>Уже не статическая страница, а весьма интерактивная
Собственно, ты сам и ответил на свой вопрос, - страница теперь нестатическая и ей тогда нечего делать в контроллере для статических страниц.

Аноним Втр 15 Июл 2014 21:09:35  #104 №370564 

>>370550
Кому нахуй нужен какой-то джуниор на удаленке?

Аноним Срд 16 Июл 2014 00:09:16  #105 №370598 

>>370564
Вот тут двачую.

Аноним Срд 16 Июл 2014 00:37:37  #106 №370610 

>>370564
>>370598
Тогда пиздуйте в крупные города. Снимайте там комнату в общаге на окраине и устраивайтесь джуниором на минимальную оплату. Либо работайте на фрилансе за еду, набирайтесь опыта. Третий вариант – пиздовать в мухосранскую вордпресс-студию и там угорать по плагинам и jquery-программированию.

Аноним Срд 16 Июл 2014 01:37:45  #107 №370625 

>>370610
Не так-то легко.

Аноним Срд 16 Июл 2014 03:07:55  #108 №370645 
1405465675992.jpg

>>370610
> Снимайте там комнату в общаге на окраине и устраивайтесь джуниором на минимальную оплату.
Не вариант. Забрасывать свой личный дом ради туманных перспектив и бомжевания? Нет пути.

> Либо работайте на фрилансе за еду, набирайтесь опыта.
Как я и говорил хуи без опыта там не нужны (что абсолютно правильно), особенно если учесть, что всегда найдутся индусы с опытом, портфолио и просящие всего половину миски риса!

> Третий вариант – пиздовать в мухосранскую вордпресс-студию и там угорать по плагинам и jquery-программированию.
Так и живем.

Аноним Срд 16 Июл 2014 03:14:03  #109 №370647 

>>370645
> Как я и говорил
Точнее я говорил про удалёнку, но это верно и для фриланса.

Аноним Срд 16 Июл 2014 10:01:31  #110 №370670 

>>370625
>>370645
Никто и не говорил что будет легко. Родился в мухосранске – не повезло, но и не безнадежно. Это касается не только программистов.

Аноним Срд 16 Июл 2014 18:10:57  #111 №370772 

Посоны, никак не могу понять, что же именно происходит на 5 строчке. С алгоритмом разобрался вроде бы, но был бы очень признателен, если мне объяснят это немного проще.
http://pastebin.com/tWKwkCqL

Аноним Срд 16 Июл 2014 18:31:20  #112 №370773 

>>370772
> что же именно происходит на 5 строчке
Два значения в массиве обмениваются местам.

Аноним Срд 16 Июл 2014 18:36:50  #113 №370774 

>>370772
>arr[index], arr = arr, arr[index]
Это называется параллельное присваивание. Таким образом:
arr[index] = arr и arr = arr[index]

Но если мы напишем прямо так, то arr[index] перезапишется значением arr и мы не сможем назначить arr значение arr[index], т.к. оно уже изменилось.

Аноним Срд 16 Июл 2014 18:48:37  #114 №370779 

>>370773>>370774
Спасибо, анончики.
А зачем на 7 строчке мы обращаемся к значению массива?

Аноним Срд 16 Июл 2014 19:04:05  #115 №370782 

>>370779
Ну надо же что-то вернуть из метода. Этот массив и возвращается. Просто return не стали писать там.

Аноним Срд 16 Июл 2014 19:06:52  #116 №370783 

>>370782
Всё, теперь понял, благодарю.

Аноним Срд 16 Июл 2014 21:44:12  #117 №370806 
1405532652486.png

>>366707
Всем рубиняшки

Аноним Чтв 17 Июл 2014 09:30:04  #118 №370945 

Есть модель User, которая связана с двумя другими моделями через has_many:

has_many :following_relationships, class_name: "FollowRelationship", foreign_key: :follower_id
has_many :followings, through: :following_relationships
has_many :reviews, dependent: :destroy

Как используя joins получить reviews тех юзеров, с которыми ты связан через following_relationship?
Аноним Чтв 17 Июл 2014 10:02:03  #119 №370953 

>>370945
Я написал такую штуку, но она ругается на отсутствие колонки follow_relationship.follower_id:

Review.joins("INNER JOIN follow_relationships ON follow_relationships.following_id = reviews.user_id").where(follow_relationship: { follower_id: id })
Аноним Чтв 17 Июл 2014 10:07:01  #120 №370954 

>>370953
Заменил follow_relationship на follow_relationships и вроде заработало.

Аноним Чтв 17 Июл 2014 11:52:07  #121 №370979 

Подкиньте идей для проекта. учебного

Аноним Чтв 17 Июл 2014 12:16:53  #122 №370984 

>>370979
У нас есть ВУЗы, в институтах есть деканаты, там декан. У каждого декана есть свой бложек. Ещё можно захватывать другие ВУЗы, и когда захватываешь, забираешь бложек декана. Ещё можно в буфет ходить и там есть.

Аноним Чтв 17 Июл 2014 13:13:58  #123 №370992 

>>370984
Нормального ничо нельзя?

Аноним Чтв 17 Июл 2014 16:31:27  #124 №371040 

Анончик, поясни тупому

Имеются юзеры /user/xxxx
где xxx - id юзера

Хочу запилить каждому личный кабинет с блекджеком и шлюхами. Чтобы там отображалась чисто его инфа.
Адрес ЛК - /user/xxxx/lk

В упор не понимаю, как сделать так, чтобы юзер получал только свои данные, а не чужие введя чужой id.

Аноним Чтв 17 Июл 2014 16:48:35  #125 №371045 

>>371040
Ставь ограничения типа методов correct_user

Аноним Чтв 17 Июл 2014 16:55:43  #126 №371047 

>>371045
>Ставь ограничения типа методов correct_user

Имелось в виду if current_user? ?

Аноним Чтв 17 Июл 2014 17:29:07  #127 №371057 

>>371047
Он имел в виду

if (@user == current_user)

А вообще лучше используй не resources :users, а resource :user. Тогда не будет поля id в адресе совсем.
Аноним Чтв 17 Июл 2014 22:47:04  #128 №371118 

В проекте используется 2 апи TG и Billogram. Чтобы не ебаться с хешами и жсоном, я решил пойти путём ООП и, короче, запилил ресурсы. http://pastie.org/private/lgskkmg5xdmivkjchbt0iw
То же самое в модуле Billogram. И когда я наследую что-нибудь от этого ресурса и запускаю консоль, то получаю ошибку:
LoadError: Unable to autoload constant Resource, expected bla-bla/lib/tradegecko/resource.rb to define it
Убираю ресурс из модуля Billogram - работает, сучечка! Так вот, как мне решить эту проблему? Наверное, что-то с областью видимости?
А, да, в config/application.rb у меня вот такая конструкция http://pastie.org/private/dobhhtymtoko24boczntqw

Аноним Чтв 17 Июл 2014 23:07:32  #129 №371130 

>>371118
> А, да, в config/application.rb у меня вот такая конструкция
> http://pastie.org/private/dobhhtymtoko24boczntqw
Wildcardы в свои пути пробовал добавлять?

Аноним Птн 18 Июл 2014 00:41:18  #130 №371144 

>>371130
Нет. И я не понял, что ты имеешь в виду.

Аноним Птн 18 Июл 2014 01:17:55  #131 №371149 

>>371144
Вот, примерно, что:

config.autoload_paths += Dir[
"#{config.root}/app/models/**/*",
"#{config.root}/app/tradegecko/**/*",
"#{config.root}/lib/tradegecko/**/*",
"#{config.root}/lib/billogram/**/*"
]


> И я не понял, что ты имеешь в виду.
Погугли же.
Аноним Птн 18 Июл 2014 11:32:38  #132 №371184 

Анон, поясни за всю хуйню

Имеецо:
application.html.erb

<% if !current_page? (root_path || regulation_path || test_path || device_path) %>
<% else %>
<%= render 'banner' %>
<% end -%>

rake routes
root GET /(:locale)(.:format) welcome#test
regulation GET (/:locale)/regulation(.:format) welcome#regulation
test GET (/:locale)/test(.:format) welcome#test
device GET (/:locale)/device(.:format) welcome#device

Требуется не рендерить баннер на всех страницах кроме regulation, test , device.

При входе на / ( root ) и /regulation баннер не выводится. Но при входе на /test и /device он отображается.

В чем причина такого поведения рельсов?



Аноним Птн 18 Июл 2014 11:47:25  #133 №371187 

>>371184
> В чем причина такого поведения рельсов?
В тебе. Ты используешь || со stringами.

Аноним Птн 18 Июл 2014 12:54:25  #134 №371205 

>>371149
Теперь понял, спасибо. С твоим вариантом сразу после "rails c" я вижу "uninitialized constant Tradegecko".

Птн 18 Июл 2014 15:13:42  #135 №371240 

>>371184
>if !current_page? (root_path || regulation_path || test_path || device_path)
Cука, что пиздец. Осильте руби сперва как следует, потом переходите на рельсы. Пиздец уебаны ебучие, в пхп превращаете мои лапмовые рельсы. Идите нахуй.

Аноним Птн 18 Июл 2014 16:37:18  #136 №371252 

>>371205
Ищи проблемы в своём коде, хуле.

Аноним Суб 19 Июл 2014 15:01:16  #137 №371419 

>>371118
Переместил всё в app/models и убрал хуйню из конфига.

Аноним Вск 20 Июл 2014 10:19:04  #138 №371582 
1405837144345.gif

вчера на установку рельсов пришлось потратить часа 4, проблема была в том, что ничего вообще не тянулось с https, только к вечеру до меня дошло о замене на http, на данный момент ощущаю себя дауном.

Аноним Вск 20 Июл 2014 19:37:41  #139 №371682 

>>371582
Да у рубигемс какая-то ебота с этим хттпс. То отваливается до закачки, то во время закачки, то вообще тупо висит.

Аноним Вск 20 Июл 2014 21:26:42  #140 №371709 

>>371582
У меня была ошибка 503, когда делал gem install rails, через час повторил и все пошло нормально.

Аноним Пнд 21 Июл 2014 00:38:54  #141 №371748 

>>371582
что за пизда у тебя на пике ?

Аноним Пнд 21 Июл 2014 08:47:40  #142 №371789 

>>371748
не знаю, тонны картинок на харде, эта наиболее подходила.

Аноним Пнд 21 Июл 2014 13:39:01  #143 №371813 

>>371184
Научись пользоваться презенторами или хотя-бы в хелперы такое говно засовывай.

>>369802
Message.includes(:users).where(reciever_id: <id>).order('updated_at desc').map(&:user)
Это если ты правильно расставил ключи, но при этом прописал ассоциацию.

Аноним Втр 22 Июл 2014 15:40:34  #144 №371998 
1406029234449.jpg

Стековерфлоу нормального ответа не дал, задам здесь:

Репликация данных при помощи гема octopus, бд оракл там блять нету нормальной репликации, только деньги отдавать за голден гейт, блядь, 2 схемы. С настройкой все ок.
А если рассинхрон данных, мне блять нахуй сносить таблицы со слейва и делать бекап с мастера?
Серьезно, остановка приложения не так критична, могу и бекапить у нас до этого мускул мастер-слейв мудацки был настроен и слетала репликация
Алсо я неверен скорее всего в терминах:
Репликация - пишем на мастер и слейв, читаем со слейва
Шардинг - пишем/читаем на мастере, пишем на слейв, со слейва не читаем.

Чтобы не смущать анона: вторая бд для другой группы, чтобы они ее ебали.

Аноним Чтв 24 Июл 2014 01:02:51  #145 №372485 

Есть годный гайд по деплою?

Чтв 24 Июл 2014 01:22:14  #146 №372489 

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

Аноним Чтв 24 Июл 2014 17:21:40  #147 №372671 

>>372485
нахуй гайд! почитай рецепты capistrano - там всё интуитивно понятно.

Аноним Чтв 24 Июл 2014 17:24:04  #148 №372673 

>>372489
Держи, как раз смотрел недавно: http://goo.gl/VphbWh

Аноним Чтв 24 Июл 2014 18:18:00  #149 №372676 

>>372671
А нджинксы всякие кто настраивать будет?

Аноним Чтв 24 Июл 2014 19:59:13  #150 №372714 

Как упростить такую конструкцию плз


<% if file.url.match(/кудах_кукарек/) %>
<%= link_to(file.url, :class=> "кудах_кукарек") do %>
несколько
строк
кода
<% end %>
<% else %>
<%= link_to(file.url, :class=> "покпок_кококо") do %>
несколько
строк
того же кода что и вверху
<% end %>
<% end %>
Аноним Чтв 24 Июл 2014 20:28:07  #151 №372720 

>>372714
партиал

Аноним Чтв 24 Июл 2014 20:31:34  #152 №372722 

>>372485
>Есть годный гайд по деплою?
https://ariejan.net/2011/09/14/lighting-fast-zero-downtime-deployments-with-git-capistrano-nginx-and-unicorn/

Аноним Чтв 24 Июл 2014 20:33:32  #153 №372723 

>>372720
Ну это очевидно, а больше никак?

Аноним Чтв 24 Июл 2014 20:34:18  #154 №372724 

>>372722
>2011

Аноним Чтв 24 Июл 2014 20:42:16  #155 №372727 

>>372714


<%= link_to(file.url, :class=> file.url.match(/кудах_кукарек/) ? "кудах_кукарек" : "покпок_кококо") do %>
несколько
строк
кода
<% end %>

Аноним Чтв 24 Июл 2014 20:54:21  #156 №372734 
1406220861399.gif

>>372727
Работает!

Птн 25 Июл 2014 00:02:51  #157 №372804 

>>372734
))

Птн 25 Июл 2014 09:25:36  #158 №372890 

>>369417
Bydlo не знает, что php уже джва года как компилируется в кеш.

Аноним Суб 26 Июл 2014 00:07:37  #159 №373072 

>>372890
> компилируется в кеш.
это как?

Суб 26 Июл 2014 02:04:43  #160 №373091 

>>373072
Это придурок прочитал про расширение APC и открыл америку.
>>372890
Втентакле и вфейспалме оно компилируется и в бинарь.
А теперь вопрос - ты много видел сайтов на hiPHoP и KPHP, за вычетом фейспалма на первом и вдурова на втором?

Аноним Суб 26 Июл 2014 17:14:15  #161 №373195 

Посовуйте какой опенсорс проектик, куда можно поконтрибьютить.

Аноним Суб 26 Июл 2014 17:16:11  #162 №373196 

>>373195
На рельсах или вообще на рубях? Если второе, то на гитхабе есть репозиторий у почти любого гема.

Аноним Суб 26 Июл 2014 17:28:35  #163 №373203 

>>373196
На рельсах.

Аноним Суб 26 Июл 2014 17:31:37  #164 №373205 

Что по тестированию почитать? Rspec book вообще не заходит, как начинаю читать, так в сон клонит.

Аноним Суб 26 Июл 2014 17:45:05  #165 №373212 

>>373203
https://github.com/diaspora/diaspora

Аноним Суб 26 Июл 2014 17:45:42  #166 №373214 

>>373203
https://github.com/publify/publify
Вордпресс на рельсах. Говна в коде тоже дохрена по крайней мере раньше так было.

Аноним Суб 26 Июл 2014 17:46:58  #167 №373215 

>>373205
А что не понятно? Если не понимаешь, зачем тебе тестировать код - просто пойми. Если понимаешь, то просто прочитай Rsped доки.

Аноним Суб 26 Июл 2014 18:29:20  #168 №373235 

>>373215
А хорошие практики где брать? В книге же они наверняка есть.

Аноним Суб 26 Июл 2014 18:29:43  #169 №373237 

>>373215
Ну синтаксис там, и все такое. Про доки хорошо сказал, спасибо.

Аноним Суб 26 Июл 2014 18:51:28  #170 №373244 

>>373237
Ну так и синтаксис в доках. Хорошие практики тут: http://betterspecs.org/ru/

Больше тестируй модели, меньше тестируй всякую хуйню.

Аноним Суб 26 Июл 2014 19:54:59  #171 №373264 

>>373244
Так и делаю, но у меня было странное чувство из-за того, что я не осилил rspec book.

Аноним Суб 26 Июл 2014 19:58:10  #172 №373267 

>>373264
Не ссысь, я вообще ни одной книги по программированию не читал.

Аноним Суб 26 Июл 2014 19:59:49  #173 №373268 

>>373267
Ээ.. звучит не очень впечатляюще.

Аноним Суб 26 Июл 2014 20:05:02  #174 №373270 

>>373268
Не ссысь, я вообще ни одной книги по программированию не читал. Так?

Аноним Суб 26 Июл 2014 22:52:26  #175 №373334 

>>373264
Зачем ты за меня отвечаешь?

Аноним Суб 26 Июл 2014 23:15:38  #176 №373341 

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

Аноним Вск 27 Июл 2014 20:40:40  #177 №373546 

>>373334
Ну ты же это и имел в виду?

Аноним Вск 27 Июл 2014 20:51:30  #178 №373553 

>>373546
Неа.

Аноним Вск 27 Июл 2014 21:42:56  #179 №373568 
1406482976123.jpg

>>373553
Тогда ты можешь ответить тому куну по-своему.

Аноним Пнд 28 Июл 2014 22:12:52  #180 №373853 

Поясните за haml/slim

Пнд 28 Июл 2014 22:38:21  #181 №373858 


begin
begin
begin
begin
begin
begin
begin
begin
puts "hello, raby!"
end
end
end
end
end
end
end
end
Аноним Пнд 28 Июл 2014 23:18:12  #182 №373870 

>>373858
сразу видно хаскелиста, можно написать проще: puts "hello ruby"

Аноним Втр 29 Июл 2014 20:33:08  #183 №374062 

>>373858



соси питон
Аноним Втр 29 Июл 2014 20:35:54  #184 №374063 

>>373870
Это не ruby way.

Аноним Срд 30 Июл 2014 14:55:37  #185 №374249 

Поясните в двух словах че надо тестировать?

Аноним Срд 30 Июл 2014 14:58:36  #186 №374252 

>>374249
В идеале - все, что пишешь.

Аноним Срд 30 Июл 2014 15:34:10  #187 №374262 

Рубач, поясни по хардкору, почему RoR не используется в браузерных ММО?

Аноним Срд 30 Июл 2014 16:21:04  #188 №374267 

>>374252
То есть и вьюхи и прочее говно?

Аноним Срд 30 Июл 2014 16:40:36  #189 №374270 

>>374249
Только public methods. Каждую мелочь быстро заебёшься тестировать. Views многие только визуально тестят.

Аноним Срд 30 Июл 2014 17:29:49  #190 №374272 

>>374252
> В идеале - все, что пишешь.
Не забудь каждый литерал протестировать, а то мало ли что.

Аноним Срд 30 Июл 2014 19:06:36  #191 №374295 

>>374270
> Views многие только визуально тестят
поясни, что значит "визуально"?

Аноним Срд 30 Июл 2014 19:20:15  #192 №374302 

>>374295
Заходишь на сайт и смотришь всё ли на месте, всё ли правильных цветов, везде ли правильные надписи итд.

Аноним Срд 30 Июл 2014 19:59:56  #193 №374309 

Я для подобных вещей юзаю проверку на 200ый ответ сервера + проверку на то, чтобы в яваскриптах не было ошибок. Норм?

Аноним Срд 30 Июл 2014 20:47:24  #194 №374316 
1406738844433.jpg

>>374309

Аноним Срд 30 Июл 2014 21:36:00  #195 №374333 

А мы с пациками вообще не тестируем, лол. Нам норм.

Аноним Срд 30 Июл 2014 22:13:43  #196 №374344 

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

Аноним Срд 30 Июл 2014 23:07:37  #197 №374351 

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

Аноним Чтв 31 Июл 2014 12:27:29  #198 №374441 

Читаю Metaprogramming Rails. Во 2й главе понравилось, как избавляются от одинаковых методов. В своём проекте можно было бы применить подобный рефакторинг, но смущает то, что придётся динамически создавать стандартные методы контроллёра. Для примера:


class RamsController < HardwareController
...
def index
@rams = apply_scopes(@rams).all.page(params[:page])
@filter_values = @rams.filter_values
end
...
end

class HddsController < HardwareController
...
def index
@hdds = apply_scopes(@hdds).all.page(params[:page])
@filter_values = @hdds.filter_values
end
...


Бывалые рубисты, скажите, не нарушу ли я никаких конвенций , если вынесу генерацию index'a в HardwareController, в какой-нибудь self.define_index?

Аноним Чтв 31 Июл 2014 13:13:40  #199 №374448 

>>374441
Если на четвертых рельсах работаешь, почитай про concerns.

Аноним Чтв 31 Июл 2014 15:27:37  #200 №374470 

Анончики, поясните пожалуйста, есть ли какой-нить гем, который бы построил связи между контроллерами?
Аля rails-erd для моделек.

Аноним Птн 01 Авг 2014 03:14:42  #201 №374666 
1406848482557.jpg

>>374470
>связи между контроллерами

Аноним Суб 02 Авг 2014 05:10:55  #202 №374942 
1406941855830.gif

Есть один модуль, содержащий пару методов и несколько классов. Нужно сделать, чтобы из классов можно было вызывать методы модуля просто по имени, как локальные переменные, вместо ИмяМодуля.имя_метода. Можно сделать через method_missing, но как автоматически добавлять этот код во все классы внутри модуля? Или есть более лучший вариант?

Аноним Суб 02 Авг 2014 06:35:13  #203 №374945 

1.9.3-p484 :034 > module Foo
1.9.3-p484 :035?> def wtf
1.9.3-p484 :036?> puts 'sup'
1.9.3-p484 :037?> end
1.9.3-p484 :038?> end
=> nil
1.9.3-p484 :039 > class Bar
1.9.3-p484 :040?> include Foo
1.9.3-p484 :041?> end
=> Bar
1.9.3-p484 :042 > f = Bar.new
=> #<Bar:0xa38e53c>
1.9.3-p484 :043 > f.wtf
sup
=> nil

Суб 02 Авг 2014 06:36:53  #204 №374946 

>>374945
задание не так понял, не то сделал

Суб 02 Авг 2014 06:38:56  #205 №374947 

>>374946

module Foo

def wtf
puts 'hey'
end

class Bar
include Foo
end

end

f = Foo::Bar.new
f.wtf

оно?

Аноним Суб 02 Авг 2014 09:15:47  #206 №374957 
1406956547588.jpg

>>374947
Да, спасибо! Держи котика.

А ещё скажите, объявлять attr_writer только в целях тестирования (иначе данные будут дёргаться через API, что не очень хорошо) - зашквар?

Аноним Суб 02 Авг 2014 10:11:03  #207 №374965 

Рубисты, подскажите.
Имеет ли смысл учить Ruby "для себя"?
Суть такова: знать основы веб-разработки нужно и полезно, это очевидно. Хотя бы с целью создания своего сайтика/бложика. Но насколько хорошо для этого подходит именно Ruby, или быть может он больше по "серьезному" вебу?

Аноним Суб 02 Авг 2014 14:28:24  #208 №374999 

>>374965
На чистом руби мало кто пишет сайтики для веба. А фреймворки РоР и Синатра довольно много низкоуровневой возни скрывают для удобства. Если цель - знать как быстро сделать бложик или что-нибудь ещё, то нормально, правда с нулём знаний в вебе придётся получать довольно много сопутствующий знаний, иначе всё будет считаться "магией".
Я бы начал с чего-нибудь, на чём можно писать без использования фреймворков, к примеру, PHP.

Аноним Суб 02 Авг 2014 14:59:27  #209 №375004 

>>374999
Верно ли я понял твою мысль, что правильная эволюция будет PHP -> RoR/anyotherseriosframework, а начинать со второго -- практически бессмысленно?

Аноним Суб 02 Авг 2014 15:08:08  #210 №375005 

>>375004
Да, понять основы лучше все таки на пхп. Впрочем можно там и остаться. Дохуя работы на всяких Yii

Аноним Суб 02 Авг 2014 15:23:32  #211 №375010 

>>375005
>Впрочем можно там и остаться
Pr'атишка, я на твой хлеб не претендую, есичо. Мне чисто для себя -- вести свой уютный сайтик/бложик. В проф. смысле мне больше байтоёбство на с/с++ нравится.
Спасибо все равно

Суб 02 Авг 2014 16:29:48  #212 №375015 

>>374957
Почитай про mock object.
>>375010
Я бы попробовал с рельсов начать, тем более, что ты для себя пишешь.
Одной книжки с примерами будет достаточно для бложика, см. Agile Web Development with Rails 4

Втр 05 Авг 2014 09:51:14  #213 №375633 

Есть один стартап, неспешно пилится и финансируется уже как год.
Писали вдвоём, сейчас второй прогер съебался в силиконовую долину и я остался один.
Проблема в том, что проект особо не взлетает (в продвижение начальство не умеет), и есть неиллюзорный шанс того, что мне придётся искать работу.
Суть в том, что это был наш первый проект на рельсах, и код, во-первых, пахнет, а, во-вторых, совершенно не покрыт тестами. Это сейчас я начитался умных книжек и проникся, а в начале оба писали говно. Вообщем показывать такое стыдно. Впрочем, в свою защиту скажу, что задачи бизнеса он решает на 100%.
И вот я теперь думаю - взять и отрефакторить в свободное время 4к+ строк кода, покрыв их тестами и всё такое (что мне на самом деле очень лень делать; в проект особо не верю, однако местами есть интересные вещи, которые как раз не стыдно показать), или ссылаться на NDA и в портфолио наклепать чего-нибудь красивого и грамотного, попутно изучая всякие актуальные в вакансиях вкусняки.
Особо говно не кидайтесь, сам понимаю, что редиска.

Аноним Втр 05 Авг 2014 09:52:25  #214 №375634 

>>375633
сажу забыл отключить, скромнобамп

Аноним Втр 05 Авг 2014 10:00:14  #215 №375635 

>>375633
А что тебе от нас надо, я не пойму?

Аноним Втр 05 Авг 2014 10:04:43  #216 №375636 

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

Аноним Втр 05 Авг 2014 15:40:10  #217 №375696 

>>375633
>4к+ строк кода
Смеешься что ли? Посиди два вечера и все переделай.

Аноним Втр 05 Авг 2014 16:06:45  #218 №375700 

>>375633
>4к+ строк кода
Ну это вообще немного, почему бы и нет?!

Аноним Втр 05 Авг 2014 16:50:18  #219 №375713 

>>375636
> лучше чего-нибудь новое пописать по уму, да потрогать те модные слова из вакансий?

Срд 06 Авг 2014 17:51:54  #220 №376000 

Сап, /pr/, я кун 17 лвла решил начать постигать суть руби, да и вообще программирования в целом. Только вот есть одно НО,
а именно - никогда не сталкивался программированием. Так вот, реквестирую более-менее опытных рубистов помочь мне в этом нелегком(имхо) деле.
Пишите(плиз) сюда.
Заранее спасибо.

Аноним Срд 06 Авг 2014 18:32:06  #221 №376007 

>>376000
>PrincessPanty
>Ruby
ну-ну

Срд 06 Авг 2014 20:41:00  #222 №376035 

>>376007
Блиан, у тебя по сабжу вообще никак не получается писать?

Аноним Срд 06 Авг 2014 23:33:08  #223 №376083 

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

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

Бот гуляет по пабликам и собирает следы жизнедеятельности людей в них. Мне нужно, чтобы по определенному пользователю я мог потом получить разом всю информацию, ссылки и что угодно вообще. Если выражать это с помощью ActiveRecord, то User :has_many :post и Posts :belongs_to :user. Но я уже чую, что это операция на гланды через задницу, потому что при добавлении каждого поста мне нужно будет проверять, если ли юзер в базе и создавать его в случае чего. Я не думаю, что это правильный подход. Как минимум. А может я дурак и не понимаю чего. Надеюсь, кто-нибудь меня поймет. Хочу просто узнать, как это сделает белый человек, у которого есть опыт.

Чтв 07 Авг 2014 00:00:56  #224 №376091 

>>376083
Бот апи использует или тупо странички парсит?
>что это операция на гланды через задницу
С чего это?

Сядь да разберись с базами, че ты как не пацан?

Аноним Чтв 07 Авг 2014 00:09:09  #225 №376093 

>>376091
Я пытаюсь сейчас разобраться. Правда. Начинаю понимать. Мне хватит иметь только Posts в атрибутом :owner_id, а выбирать уже с помощью Post.where(owner_id: 123). Но тогда у меня вопрос. Снова тупой. Правильно ли я понимаю, что при пяти миллионах записей в таблице это все тоже ляжет, потому что он каждый раз перебирать будет?

Аноним Чтв 07 Авг 2014 00:14:08  #226 №376095 

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

Аноним Чтв 07 Авг 2014 00:15:10  #227 №376096 

>>376093
не ляжет

Аноним Чтв 07 Авг 2014 00:31:37  #228 №376100 

>>376093
>при пяти миллионах записей в таблице это все тоже ляжет, потому что он каждый раз перебирать будет
у тебя очень зачаточные представления о работе баз данных

Аноним Чтв 07 Авг 2014 00:41:20  #229 №376103 

>>376100
Ну, я же хранил все в текстовом виде. Оно и видно. В общем, с этим надеюсь самостоятельно разобраться, ничего сложного тут нет. Хотелось бы теперь узнать про обновление базы. Бот естественно будет на другой машине. Может, даже не на одной. И мне все это надо без проебов всегда собирать. В секунду около двух тысяч новых записей, иногда пять-шесть тысяч. Каждую секунду слать JSON'ом на сервер данные — это тоже плохая идея ведь? Может, правильнее как-то подключиться к базе? Может, обновлять её не так часто, но огромными порциями?

Аноним Чтв 07 Авг 2014 09:04:02  #230 №376137 

Есть одна модель, она должна отображать количество подписчиков в твиттере по месяцам. То есть, поля - user_id, followers, date. Как правильнее её назвать?

Аноним Чтв 07 Авг 2014 10:24:06  #231 №376141 

Руби-бандиты, я разобрался с азами баз данных. Теперь у меня вопрос: при пяти миллионах записей в таблице sqlite поиск по ней длится 3-4 секунды. Будет ли ускорение, если я перекачусь на нормальную базу данных? Какие еще есть способы ускорить все это говно? Я буду гуглить, конечно, и разбираться, но рекомендации анона все равно же помогут очень хорошо.

Аноним Чтв 07 Авг 2014 10:25:32  #232 №376142 

>>376141
Перекатывайся на mysql / psql и используй индексы.

Аноним Чтв 07 Авг 2014 11:13:20  #233 №376151 

>>376142
Да, вспомнил, что краешком уха слышал про индексы и накатил миграцию с ними. Вопрос отпал.

Аноним Суб 09 Авг 2014 01:49:46  #234 №376594 

Хочу написать какой-нибудь гем, для общего развития и портфолио, но ничего нового придумать не могу.
Может есть у кого идея, чего бы запилить?

Аноним Суб 09 Авг 2014 02:13:39  #235 №376601 

>>376594
Запили мне байндинги для qt5 лучше.

Аноним Вск 10 Авг 2014 01:53:17  #236 №376793 
1407621197020.jpg

Читал, но нихуя не понял: почему где-то двоеточие перед словом, а где-то после?

Аноним Вск 10 Авг 2014 02:32:44  #237 №376796 

>>376793
почитай про руби

Аноним Вск 10 Авг 2014 06:24:07  #238 №376814 

>>376793
Вот это, например, эквивалентно:
:test => 'test' и test: 'test'

А еще двоеточие перед словом обозначает символ.

Аноним Вск 10 Авг 2014 10:20:35  #239 №376821 

Тем временем завтра начинаются курсы с нуля: https://www.coursera.org/course/webapplications

Аноним Вск 10 Авг 2014 11:45:45  #240 №376831 

Накидайте идей для веб-аппликейшена, хочу покодить для души, да чего-нибудь хоть чуточку полезного запилить.

Вдохновлен http://www.cronchecker.net/

Аноним Вск 10 Авг 2014 12:18:04  #241 №376835 

>>376821
Хуйня.

Аноним Вск 10 Авг 2014 13:22:46  #242 №376852 

>>376831
Ты такой нежный, что вдохновлен примитивной парсилкой кроновских задач?

Аноним Вск 10 Авг 2014 18:07:27  #243 №376939 

>>376821
Анон, который пройдет этот курс. Отпишись потом как-нибудь планируют ли они запускать вторую часть после этого.
>>376835
Поддвачну

Аноним Вск 10 Авг 2014 20:30:20  #244 №376983 

Блядь, всё время мучаюсь. Как найти в каком-нибудь геме на гитхабе объявление определённого метода?

Аноним Вск 10 Авг 2014 20:33:11  #245 №376985 

>>376983
Правой кнопкой мыши, затем "Go to declaration".

Аноним Пнд 11 Авг 2014 09:39:34  #246 №377054 

>>376985
>на гитхабе

Аноним Пнд 11 Авг 2014 13:31:28  #247 №377085 

Рельсаны, решил упороться бутстрапом. Все популярные на гитхабе гемы — это второй бутстрап. Даже twitter-bootstrap-rails, где в README ясно написано, что це есть третий бутстрп, — это второй. Я бы уже сто раз просто въебал CSS-ок из какого-нибудь CDN, но это не Rails-way, наверное.

В общем, как правильно мне подключить Boostrap 3?

Аноним Пнд 11 Авг 2014 13:40:06  #248 №377087 

Поехавшие ITT. Один на гитхабе ищет объявление метода, другому жиды подсовывают второй бутстрап вместо третьего.

Аноним Пнд 11 Авг 2014 13:40:37  #249 №377088 

>>377085
https://github.com/twbs/bootstrap-sass

Аноним Пнд 11 Авг 2014 14:00:29  #250 №377089 

>>377085
Используй Bower. Подключать css/js через гемы это каменный век. https://github.com/42dev/bower-rails в помощь.

Аноним Пнд 11 Авг 2014 18:45:20  #251 №377157 
1407768320003.jpg

>>377087

Пнд 11 Авг 2014 18:47:06  #252 №377159 

>>377089
Нужно больше зависимостей. Bundler мало было, надо bower-парашу тоже приташить.

Аноним Пнд 11 Авг 2014 19:02:41  #253 №377168 

>>377159
Нет, блять, жди по несколько месяцев, пока обновится гем, который оборачивают нужную тебе либу в которой вчера пофиксили критичный для тебя баг.

Аноним Втр 12 Авг 2014 03:54:20  #254 №377316 

>>376939
Да, обещают сразу после этого, т.е. в конце сентября.

Аноним Срд 13 Авг 2014 10:10:58  #255 №377604 
1407910258007.png

Имеется вопрос. Добрался в своем изучение рельсов до деплоя и тут на меня свалился целый зоопарк серверов/СУБД/итд.
1 Для чего везде написано что надо устанавливать в связке (Apache или Nginx) и (phusion passenger или unicorn)? Почему нельзя обойтись только одним сервером?
2 Соответсвенно какие роли какой сервер выполняет.
3 СУБД, какую выбрать: MySQL - вроде с ней работать проще чем с postgresql, но у второй много всяких плюшек, которые мне наверняка не понадобятся. Либо есть еще какой нибудь вариант?
4 ОС, обязательно ли ставить на сервак серверную ОС или десктопная тоже покатит? Пока я накатил себе бубунту 14 лтс.
5 capistrano - так ли он нужен и хорош? Ведь все тоже самое можно реализовать на баше.

картинка для привлечения внимания

Аноним Срд 13 Авг 2014 10:29:41  #256 №377606 

>>377604
1. только пума, остальное говно
2. угадай
3. постгрес, а так без разницы, тебе нужно только в общем случае пароль\логин\название_базы_данных\порт
4. любая
5. на баше прост писать надо ещё, а на капистрано уже написали)

вот книжка прочитай, там есть про пупет, вагрант и всё разобрано http://www.amazon.com/Deploying-Rails-Automate-Deploy-Maintain/dp/1934356956/ref=sr_1_1?s=books&ie=UTF8&qid=1407911341&sr=1-1&keywords=rails+deployment

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

Аноним Срд 13 Авг 2014 10:47:19  #257 №377612 

>>377606
1 пуму можно ставить одну и без всяких дополнительных серверов?
2 вроде так: запрос юзере из инета в апач, апач в виртуальную проксю, прокся в пассажир, пассажир рельсам. И в обратную сторону(поправь меня если я не прав). Но зачем тут нужна виртуальная прокся и лишний сервак, ведь можно отправить запрос сразу в рельсы.
3 ок
4 ок
5 то есть если я буду писать скрипт развертывания на баже я потрачу 1ч, а если на капистрано, то 10мин?

За книжку спасибо, почитаю.

зато в моей картинке есть душа

Аноним Срд 13 Авг 2014 11:04:12  #258 №377613 

>>377612
1. пума + нжинкс
2. иногда сразу отдастся нгинксом, если это статика, апач не ставь он плохой
5. да

бабу мне запили

Аноним Срд 13 Авг 2014 11:39:40  #259 №377620 
1407915580431.jpg

>>377613
1 чому именно пума? Я тут погуглил и у пумы только 1 страница на сайте с графиком и пара строк кода по использованию, и пассажира же гораздо больше документации.

уж что нашел

Аноним Срд 13 Авг 2014 11:52:08  #260 №377625 

>>377620
пума проще

Аноним Срд 13 Авг 2014 14:59:58  #261 №377658 

>>377620
Пассажир с нжинксом ставится одной командой и ничего настраивать не надо.

Аноним Чтв 14 Авг 2014 00:25:21  #262 №377810 

>>377604
Да, с деплоем пиздец какой-то. Сам только недавно впервые деплоил. Мучался 2 дня и в итоге все сделал. Сначала думал, возьму готовые конфиги и всё заработает, но нихуя не вышло, пришлось во всем разбираться самому.
Могу посоветовать эту статью — http://habrahabr.ru/post/213269/ (но там есть ошибки в конфигах) и этот каст — http://railscasts.com/episodes/335-deploying-to-a-vps (можно на рутрекере найти)
Я использовал unicorn + nginx + postgres, устанавливал всё на убунту 14.04, на digitalocean.com. Unicorn и Nginx никак сам не настраивал, брал готовые конфиги, правил в них только пути, с ними все работало искаропки. А вот с capistrano пришлось помучаться и переписать конфиг под себя с нуля. Но оно того стоило, теперь хоть понимаю, как эта херовина работает. Capistrano хорош, многое делает за тебя, но разобраться в нем трудно, так как нихуя нет документации. Такие дела.

Аноним Чтв 14 Авг 2014 00:30:23  #263 №377812 

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

Аноним Чтв 14 Авг 2014 01:01:49  #264 №377822 

>>377812
Дело привычки. В виме удобно работать за ноутбуком, так как достаточно одной клавы и не нужно отвлекаться на мышку, тачпад. Если привыкнуть и правильно настроить конфиг, то можно писать код быстрее, чем на обычных редакторах. Из минусов то, что нужно запоминать дохера команд, а когда долго пишешь, все эти команды начинают путаться в голове и ты начинаешь тупить. Еще из минусов я бы назвал навигацию по файлам, особенно когда их много. Тут я пока не нашел для себя подходящего решения.

Аноним Чтв 14 Авг 2014 01:23:07  #265 №377835 

>>377812
>сказали, что бы переходил на вим
Охуеть. Я бы их послал нахуй за такое.
>Накатил конфиг от роботов
Зря. Пиши свой, с нуля.

мимо-безработный-вимогосподин

Аноним Чтв 14 Авг 2014 01:24:35  #266 №377838 

>>377822
Навигация по файлам как раз таки удобная: жму ctrl+p, ввожу имя файла и оно на ходу ищет, еще тесты удобно запускать. А так хз, какая-то хуйня с копипастом, точнее с пробелами, хотя может я неправильно это делаю. в инсерт моде ctrl+shift+v

Аноним Чтв 14 Авг 2014 01:28:31  #267 №377840 

>>377838
Для копипасты добавляешь это в свой конфиг


set pastetoggle=<F2>

И каждый раз когда хочешь вставить нажимаешь на F2, вставляешь через сtrl+v, и еще раз на F2.
Не или еще проще нажать "+p и радоваться что все вставилось как следует.


Аноним Чтв 14 Авг 2014 01:32:40  #268 №377843 

>>377835
Мотивировали это тем, что используют какой-то gnu screen.

Аноним Чтв 14 Авг 2014 01:34:34  #269 №377844 

>>377843
>gnu screen
Редкостные говноеды, однако. Tmux жи есть.

Аноним Чтв 14 Авг 2014 01:39:25  #270 №377846 

>>377840
Спасибо, годно.

Аноним Чтв 14 Авг 2014 02:11:05  #271 №377857 

>>377812
> сказали, что бы переходил на вим
Я бы держался от них подальше.

Аноним Чтв 14 Авг 2014 02:24:53  #272 №377861 

>>377857
Что за толстота?

Аноним Чтв 14 Авг 2014 03:12:11  #273 №377867 

>>377861
Чего-чего?

Аноним Чтв 14 Авг 2014 03:25:08  #274 №377868 
1407972308456.jpg

Начал изучать ваши рельсы. Пока вроде все понятно. Ну относительно.
Добавил новую конструкцию.

bin/rails generate scaffold Genre name:string

У меня вопрос. Как в конструкцию Genre добавить новую переменную?
Аноним Чтв 14 Авг 2014 03:48:49  #275 №377870 

>>377867
Ну поясни, что плохого в виме?

Аноним Чтв 14 Авг 2014 09:05:12  #276 №377904 

>>377868
http://apidock.com/rails/ActiveRecord/ConnectionAdapters/SchemaStatements/add_column

Аноним Чтв 14 Авг 2014 15:47:36  #277 №377983 

>>377810
Спасибо, самому вскоре предстоит нечто подобное, но вместо unicorn буду использовать пуму, как посоветовали выше, или пассажира. И если у тебя все заработало из коробки, то дай ссыль на правильные конфиги Unicorn и Nginx(если что воспользуюсь ими и не буду использовать пуму или пассажира). И еще какой нибудь скрипт для Capistrano, а то их много как то. Или просто скажи какие команды Capistrano мне пригодятся.

Аноним Чтв 14 Авг 2014 15:50:20  #278 №377985 

Есть вопрос из разряда теоретических. Допустим у нас есть инет-магазин написанный на пыхе, и соответсвенно БД под него. И если мы хотим переписать его на рельсы, то можно ли использовать для этого старую БД или надо делать ее с нуля и пустой, и потом SQL-скриптами заполнять ее со старой?

Аноним Чтв 14 Авг 2014 16:05:33  #279 №377990 

>>377985
можно использовать

Аноним Чтв 14 Авг 2014 20:37:05  #280 №378088 

>>377870
Тут дело не в виме, а в самом факте отсутствия свободы в выборе редактора.

Аноним Чтв 14 Авг 2014 20:58:37  #281 №378097 

>>378088
Тащемта полная свобода только у фрилансеров. Часто в каком-нибудь говноэклипсе заставляют работать, а IntelliJ IDEA Ultimate Torrent Edition не поставить, печаль.

Аноним Чтв 14 Авг 2014 22:11:38  #282 №378125 

>>378097
Может там еще заставляют приходить к 9, или запрещают ходить в шортах?
Работать в таких конторах -- себя не уважать.

Аноним Чтв 14 Авг 2014 22:27:16  #283 №378129 

>>377983
Сервер настроить можно по статье на хабре или по касту - там одинаковая настройка.
Конфиг Nginx – http://pastebin.com/czHqTYiY
Конфиг Unicorn – http://pastebin.com/kCy90Skk
Nginx устанавливаешь через apt-get install, файл /etc/nginx/nginx.conf не трогаешь, удаляешь все файлы из /etc/nginx/sites-enabled/ если они там будут.
В корне rails-проекта создаешь папку shared, кидаешь в нее оба конфига + database.yml с настройками базы данных. В обоих конфигах не забудь указать название приложения. Саму папку игноришь в .gitignore, из этой папки конфиги на сервер будут заливаться через капистрано. (кстати, в качестве хранилища гит-репозиториев удобно использовать bitbucket, так как в нем можно бесплатно создавать приватные репозитории - самое то для деплоя)
Гемы для капистрано и юникорна - http://pastebin.com/HUWmpfj8
Capfile – http://pastebin.com/ddJjE4QW
config/deploy/production.rb – http://pastebin.com/7rcejNiH
config/deploy.rb - http://pastebin.com/8Nq762bx
Конфиги у меня минимальные, в них только самое необходимое, так что думаю, ты разберешься, если что. Еще тебе может помочь эта ссылка - http://capistranorb.com/documentation/getting-started/flow/ - это очередность стандартных тасков капистрано. По сути, когда я пишу свой конфиг, я цепляюсь к этим таскам и делаю свои операции.

Для начала советую запустить капистрано на дефолтном rails-проекте с дефолтным конфигом (указав настройки сервера, само собой), чтобы понять, что капистрано делает по-умолчанию. Капистрано запускается командой cap production deploy, после чего он на сервере должен создать все нужные папки, загрузить приложение в папку releases и установить ссылку current на текущую версию приложения. Потом создаешь у себя папку shared, кидаешь в нее конфиги (nginx, unicorn и database.yml), копируешь мои конфиги капистрано, пушишь, деплоишь и, если тебе повезет, то всё заработает.
Фух, надеюсь, разберешься.

Аноним Чтв 14 Авг 2014 22:53:39  #284 №378134 

Аноны, выручайте.

Можно ли сделать так, чтобы модуль curses из стандартной библиотеки Ruby работал с юникодом?

Следующий код не даёт даже ввести символы юникода:


Curses.init_screen

@win = Curses::Window.new(Curses.lines,
Curses.cols,
0,
0)
@win.refresh
@win.getstr
Аноним Птн 15 Авг 2014 10:56:52  #285 №378250 

Анончики, поясните, пожалуйста:
Решил познать Ruby и RoR, вроде как возможностей много, самое то. Но вот в чем принципиальная разница между Ruby и Python, например? Их вечно ставят в противовес (учитывая, что и там и там есть фреймворк для web разработки ануса). Правильный ли выбор я сделал?

Аноним Птн 15 Авг 2014 11:13:24  #286 №378252 

>>378250
Да.

Аноним Птн 15 Авг 2014 11:27:53  #287 №378257 

>>378252
А почему?

Аноним Птн 15 Авг 2014 11:39:08  #288 №378261 

>>378257
Потому что иди нахуй, вот почему.

Аноним Птн 15 Авг 2014 11:58:52  #289 №378264 

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

Аноним Птн 15 Авг 2014 14:35:56  #290 №378300 

>>378250
Смотря что ты хочешь. Если ты хочешь ебаться в глаза и прочие отверстия в тоем теле, настраивая либы (из овер 9000 либ, которые я пытался юзать, заработала только одна, это был Twython) и окружение для питона, потом еще ебаться с дуализмом версий, проклинаться все, пока пишешь себе websockets-сервер и встречаться с интересными особенностями питона, то тебе, конечно, стоит им заняться. Имхо, питон стоит знать только для общего развития и чтоб с голоду не умереть, потому что найти работу рубисту в России, если ты живешь не в Москве или Питере, очень тяжело.

Аноним Птн 15 Авг 2014 14:41:10  #291 №378304 

>>378300
Понятно.
А если сравнивать с другими сферами? Где сейчас перспективнее развиваться - в мобильной разработке или в web?
И насколько мобильные веб приложения "канают" ?

Аноним Птн 15 Авг 2014 16:31:53  #292 №378342 

>>378304
Java Enterprise. Ruby on Rails и мобильные разработка — это всё для дешёвых стартапов.

Аноним Птн 15 Авг 2014 16:35:57  #293 №378344 

>>378300
Откуда вы беретесь, уебаны криворукие?

Аноним Птн 15 Авг 2014 17:47:17  #294 №378359 

рельсаны, помогите ньюфангу.

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

Какие правильные будут ассоциации?

User has_many :comments и has_many :news
Comment belongs_to :user belongs_to :news
News has_many :comments belongs_to :user

но мне кажеся я что-то делаю не так.

Аноним Птн 15 Авг 2014 18:24:15  #295 №378367 

>>378359
Все правильно.

Аноним Птн 15 Авг 2014 19:40:47  #296 №378373 

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

Аноним Птн 15 Авг 2014 20:12:10  #297 №378380 

>>378373
Я бы повесил на after_destroy для модели пользователей.

Аноним Птн 15 Авг 2014 20:13:37  #298 №378382 

>>378373
google -> skinny controller fat model

Аноним Птн 15 Авг 2014 21:16:59  #299 №378387 

>>378359
Я бы написал belongs_to :author, class_name: 'User'
>>378373
Лучше не увлекаться колбеками в модели. Пиши в контроллере. Если что-то сложное, используй Interactor какой-нить.

Аноним Птн 15 Авг 2014 22:35:23  #300 №378407 

Посоны. Нужно организовать на страничке вывод консольной команды.
system("ls -a") выводит true
Что нужно сделать, чтоб получить нормальный вывод.

Аноним Птн 15 Авг 2014 22:42:49  #301 №378411 

>>378407
http://devver.wordpress.com/2009/06/30/a-dozen-or-so-ways-to-start-sub-processes-in-ruby-part-1/

Аноним Суб 16 Авг 2014 02:39:40  #302 №378447 

>>378250
Не знаю, в питоне все просто как 3 копейки. И в джанго тоже. Сам создал урл, сам создал темплейт.
В рельсах же хуйня какая-та, которую они называют магией.
Сахар этот, символы какие-то

t.decimal :price, precision: 8, scale: 2


Точки слева - это символ. А точно справа это что, присваивание? А где-то вообще без них.
Переменные экземпляра, переменные класса, переменные экземпляра класса. Пиздец.

мимо
Аноним Суб 16 Авг 2014 04:38:09  #303 №378459 

>>378447
Это в питоне пиздец, а в руби это сделано вполне грамотно, а не через @жопу.

Аноним Суб 16 Авг 2014 07:17:36  #304 №378467 

>>378447
Ты в чём то прав, тяжело понимать штуки уровня переменных класса, когда сам пишешь на языке без инкапсуляции.
scale: 2 это сокращение от :scale => 2 (ключ => значение ассоциативного массива).

Аноним Суб 16 Авг 2014 18:28:52  #305 №378548 

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

Аноним Суб 16 Авг 2014 18:34:07  #306 №378549 

>>378548
Самый лучший язык в мире.
Что конкретно ты хочешь услышать?

Аноним Суб 16 Авг 2014 18:36:23  #307 №378550 

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

Аноним Суб 16 Авг 2014 18:46:00  #308 №378553 

>>378548

Годный дружелюбный динамический язык, используется в основном для вэба (рельсы) и в качестве инструмента автоматизации (Chef, тесты, CI).

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

Правда у меня в городе была лишь 1 вакансия рубиста, это минус, не знаю как в твоём регионе в этом плане. Так что в итоге перешел на жабу, работаю уже 2 года. Руби мне много дал в плане общего развития. Хороший язык для старта и работы на одеске, для сычевания в офисе больше подойдет жабаскрипт, если хочется розовых дилд, или тот же тырпрайз.

В пых слышал, что там херовый гешефт и переизбыток кадров.

Аноним Суб 16 Авг 2014 18:52:03  #309 №378556 

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

Аноним Суб 16 Авг 2014 18:54:35  #310 №378558 

>>378553
Спасибо, доступно.
Мне, выходит, нужно выбрать фактически первый язык для изучения, плюс чтобы работу с ним найти, т.к. сейчас все очень плохо - в моем городе безработица, а для программиста вообще работу найти проблема, не нужны они здесь. Хочу уехать на вольные хлеба в поисках лучшей жизни и, в перспективе, не возвращаться в это болото никогда. Ну и возраст тоже накладывает свой отпечаток, в том смысле, что время идет, и не хотелось бы его тратить на заведомо бесперспективное направление - нет уже времени изучать что-нибудь просто для интереса, хотелось бы сразу уйти в заведомо профитную область. Отсюда и все сомнения в выборе.
Пишу, может, не всегда понятно и доходчиво, прости, анон.
>>378556
Да я и не стремлюсь к сверхбыстрому получению профитов. Просто пришло понимание, что нужно что-то менять в этой жизни, пока не поздно, и пока выбираю направление. Поэтому и задаю много вопросов - було бы обидно ошибиться в самом начале и потратить впустую время, которого осталось не так много.

Аноним Суб 16 Авг 2014 18:55:58  #311 №378560 
1408200958456.jpg

>>378558
>було
было

slffx

Аноним Суб 16 Авг 2014 19:30:21  #312 №378569 

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

Аноним Суб 16 Авг 2014 19:43:13  #313 №378573 

>>378569
>джаваскрипт
Оукей. Но о нем я не имею вообще никакого представления, т.к. не смотрел в его сторону никогда. Смутно понимается что-то вроде эффектов для веб-страниц.

Аноним Суб 16 Авг 2014 20:07:46  #314 №378590 

>>378573
Начнешь как раз с эффектов для веб-страниц и верстки. Через год-полтора усердной работы начнешь более-менее понимать всю веб-парашу и сможешь перейти к созданию бэкенда на node или фронтенда на angular. Либо выберешь любой другой язык для бэкенда, джаваскрипт все равно пригодится.

Аноним Суб 16 Авг 2014 20:49:56  #315 №378611 

>>378573
>Оукей. Но о нем я не имею вообще никакого представления, т.к. не смотрел в его сторону никогда. Смутно понимается что-то вроде эффектов для веб-страниц.
И сразу нахуй. Не слушай этих петухов. Самый востребованный и оплачиваемый язык в рашке-парашке — это Java. Но если ты действительно хочешь конкурировать со студентотой, дрочить вёрстку, сдвигать влево на 1px, учить каждый день новый framework, то впёрёд, изучай Javascript.

Аноним Суб 16 Авг 2014 20:55:15  #316 №378615 

>>378611
Порог вхождения в эту джаву будет явно повыше, чем в js/пыху. Плюс у меня абсолютно нет опыта, незаконченная вышка, и возраст под 30. Кому нужен такой джун, да еще и понаехавший из сибирский пердей?
Я все понимаю, анон, не первый день уже думаю, что изучать, просто стараюсь быть реалистом.

Аноним Суб 16 Авг 2014 20:57:14  #317 №378616 

>>378611
Будто изучив джавапарашу не придется конкурировать со студентотой. Новые фреймворки, впрочем, действительно не придется изучать – в джавапараше уже давно ничего нового не происходит. Только унылый энтерпрайз и БИЗНЕС-ЛОГИКА

Аноним Суб 16 Авг 2014 21:04:13  #318 №378622 

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

Аноним Суб 16 Авг 2014 21:06:40  #319 №378625 

>>378622
Я как раз и есть воннаби-фрилансер-доширачник-из-мухосранска.

Аноним Суб 16 Авг 2014 21:12:26  #320 №378629 

>>378615
>Порог вхождения в эту джаву будет явно повыше, чем в js/пыху.
Смотри, ты можешь изучить только Java и пойти на джуна в корпорацию.
Или изучить HTML, CSS, SASS/LESS, вёрстку, Photoshop, Javascript, JQuery, Angular, Node, Ember, Backbone, bootstrap, extjs.
Ну и что же ты выберешь?

Аноним Суб 16 Авг 2014 21:14:54  #321 №378631 

>>378629
Даже не знаю. Еще больше только запутался.

Аноним Суб 16 Авг 2014 21:18:40  #322 №378633 

>>378625
>>378625
>Я как раз и есть воннаби-фрилансер-доширачник-из-мухосранска.
Ну да, выбери свободу от офиса, выбери доширак, выбери джаваскрипт, выбери 50 откликов доширачников на 1 заказ на фрилансе.

Аноним Суб 16 Авг 2014 21:24:42  #323 №378636 

>>378622
Хуйню написал, у меня в мухосранске джава
де-факто стандарт для студентоты, а про джаваскрипт вообще три с половиной преподавателя слышали.

Аноним Суб 16 Авг 2014 21:30:46  #324 №378639 

>>378629
Лол, перечислил рандомные JS-библиотеки/фреймворки, SASS/LESS который от CSS почти ничем не отличается и, зачем-то, фотошоп, в котором всего-то нужно уметь нарезать картинки из psd – если собираешься работать верстальщиком.

Вы там в своем джаваговне только стандартной библиотекой пользуетесь что-ли? И не изучаете вообще никаких полезных инструментов? Чем же вы там занимаетесь?

Аноним Суб 16 Авг 2014 21:32:30  #325 №378641 

>>378636
>>378636
>>378636
>Хуйню написал, у меня в мухосранске джава де-факто стандарт для студентоты, а про джаваскрипт вообще три с половиной преподавателя слышали.
Я говорю про работу, а не про то, что в твоей говношараге преподают.

Аноним Суб 16 Авг 2014 21:32:31  #326 №378642 

>>378633
Дело в том, что с джаваскриптом можно как фрилансить, так и сидеть в офисе. С джаваговном можно только сидеть в офисе. При чем, как правило – в максимально унылом офисе с корпоративными правилами и галстуками в бездушном стойле-опенспейсе – ведь стартапов никто на джаве не делает.

Аноним Суб 16 Авг 2014 21:34:06  #327 №378644 

Алсо, на фрилансе долгое время в любом случае придется соревноваться с доширачниками за 100-рублевый заказ – вне зависимости от выбранного языка. Так что лучше начать с офиса, если такая возможность есть – и на фриланс идти уже сформировавшимся, востребованным специалистом с портфолио.

Аноним Суб 16 Авг 2014 21:39:23  #328 №378646 

>>378629
Ага, а на Java-джуна от тебя сейчас требуют:
J2SE, J2EE, JSP, JSF, Hibernate и тд

Аноним Суб 16 Авг 2014 21:39:36  #329 №378647 

>>378642
>Дело в том, что с джаваскриптом можно как фрилансить, так и сидеть в офисе. С джаваговном можно только сидеть в офисе.
А нахуй фрилансить, объясни? Это говно для индийцев и китайцев.

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

>галстуками
Не иди туда, где есть дресс-код.

Аноним Суб 16 Авг 2014 21:42:43  #330 №378649 

>>378646
>J2EE, JSP, JSF, Hibernate и тд
От джуна же требует скорее знания определиния этих слов, а не годы разработки на ней.

Аноним Суб 16 Авг 2014 21:48:00  #331 №378651 

>>378646
это на мидла

// java-кун

Аноним Суб 16 Авг 2014 21:51:40  #332 №378652 

>>378548
На курсере стартовал курс "Web Application Architectures" - https://class.coursera.org/webapplications-002 Рассказывается как раз про Ruby on Rails, хотя собственно программирования там практически нет, рассказывается про Rails, про веб-приложения, так что начать можно отсюда. И да, в отличии от большинства курсов на курсере, там материалы по всему курсу доступны сразу же, а не появляются каждую неделю, так что его можно полностью за неделю изучить.

Аноним Суб 16 Авг 2014 22:00:11  #333 №378656 

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

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

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

Аноним Суб 16 Авг 2014 22:07:29  #334 №378659 

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

Аноним Суб 16 Авг 2014 22:09:21  #335 №378660 

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

Я помню как мне припекло не так давно, когда узнал, что какой-то чувак на кикстартере сказал что съест тарелку макарон за 10$, или что-то вроде того и собрал порядка 20к.

Аноним Суб 16 Авг 2014 22:10:37  #336 №378661 

>>378659
>При этом 95% этих инвестиций уходит на кокаин владельцу стартапа
Маня-мирок.

Аноним Суб 16 Авг 2014 22:13:33  #337 №378665 

>>378656
>Потому что нужна дешёвая рабочая сила, а джава-разработка стоит дорого.

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

Аноним Суб 16 Авг 2014 22:16:05  #338 №378666 

>>378665
Это не означает, что разработчикам платят меньше. Это означает, что стартап экономит время и деньги. Типичная маня-логика.

Аноним Суб 16 Авг 2014 22:26:24  #339 №378674 

>>378666
>Это не означает, что разработчикам платят меньше.
Посмотри обзор зарплат Java-разработчиков и обзор зарплат разработчиков-скриптопараши и найди разницу.

Аноним Суб 16 Авг 2014 22:37:35  #340 №378679 
1408214255437.png

>>378674
Посмотрел. Заплаты джавапарашников незначительно выше, при этом работы на джаваскрипте больше раза в 2, в том числе на топовые позиции 150к+. Что еще пизданешь?

Аноним Суб 16 Авг 2014 22:40:38  #341 №378683 

>>378642
>ведь стартапов никто на джаве не делает

Кстати вспомнил как был в руби-сообществе такой период, когда Руби/Рельсы пиарили как некий божественный стек в противовес уёбищной сложной жабе, а жабу обсирали везде. Типа вот у нас конвеншен овер конфигурейшен, тдд/бдд вся херня. Затем в промежуток 2012-2014 обновляется Play Framework получая все сасс/лесс и тд перделки и свистелки, Спринг меняет владельца и выкатывает тот же конвеншен овер конфигурейшен Спринг Бут и хуеву тучу других дилдаков, выходит жабка 8, новый ЕЕ стек, все кукумберы-хуюмберы идут в народ, грейдлы, розовые дилдаки, no-sql, нашхорн, появляется много всяких связок жабка/скалка + ангуляр/эмбер и тд. Все понимают, что жабе в традиционном понимании постепенно приходит конец, но на горизонте маячит некий сугубо облачно-энтерпрайзно-бэкендный jvm-мутант. Хипсторы начинают писать в твитор #javaCoolAgain. То есть будущее жабы примерно очерчено.

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

Аноним Суб 16 Авг 2014 22:43:00  #342 №378685 

Охлол, при чем половина тех вакансий 200к+ – это вообще не джава, а технические директоры, администраторы SAP и одинэсники, для которых знание джавы является скорее приятным дополнением. Остальные вакансии – типичный унылый энтерпрайз. Работа в банке, анализ ДБО и прочий трейдинг. Унылая, в общем, работа, и наверняка с дресс-кодом.

И, как оказалось – ни одной позиции на 200k+ для джавапарашника нет – там одни руководители и прочие директоры по разработке.

Аноним Суб 16 Авг 2014 22:48:20  #343 №378688 

>>378683
Да насрать на руби и прочие питоны. С появлением фронтенд MVW фреймворков весь этот рендеринг шаблонов на сервере стал абсолютно бессмысленным, так что место для рубей и питонов осталось разве что на бэкенд. Но и там они нахуй не нужны, так как есть более быстрые и удобные языки для этой задачи.

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

Аноним Суб 16 Авг 2014 22:54:14  #344 №378695 
1408215254605.png

>>378683

Аноним Суб 16 Авг 2014 22:57:02  #345 №378700 

>>378679
>при этом работы на джаваскрипте больше раза в 2
Это потому что на каждой пых-говновакансии требуют джаваскрипт.

Аноним Суб 16 Авг 2014 23:01:59  #346 №378705 

>>378700
Это потому что джаваскрипт теперь используется везде. Веб (и фронтенд и бэкенд), мобильные приложения, десктопные приложения с node-webkit. А джавпараша где? Банки, банки, ДБО и ынтерпрайз. Уныние и безысходность.

Аноним Суб 16 Авг 2014 23:03:04  #347 №378707 

>>378685
>И, как оказалось – ни одной позиции на 200k+ для джавапарашника нет – там одни руководители и прочие директоры по разработке.
Потому что разработчику никогда столько платить не будут. Разработчик будет всю жизнь смотреть в монитор, читать говнокод, получать средненькую зарплатку и есть доширак.

Аноним Суб 16 Авг 2014 23:04:23  #348 №378708 

>>378688
> А джава слишком популярна, чтобы в одночасье вот так взять и умереть, вместе со всей своей энтерпрайз экосистемой.
Clojure — элегантное решение. Посылаем нахуй джаву, но пользуемся всеми её библиотеками и JVM :)

Аноним Суб 16 Авг 2014 23:05:50  #349 №378710 

>>378688
Вообще никогда не понимал, зачем на серверную сторону ставят что-то кроме REST-сервиса и зачем нужны все эти скриптоговна когда есть всякие Spray и Jersey.

Аноним Суб 16 Авг 2014 23:05:59  #350 №378711 

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

Аноним Суб 16 Авг 2014 23:14:00  #351 №378723 

>>378705
>Банки, банки, ДБО и ынтерпрайз. Уныние и безысходность.

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

Аноним Суб 16 Авг 2014 23:18:17  #352 №378729 

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

Аноним Суб 16 Авг 2014 23:23:18  #353 №378733 

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

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

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

Аноним Суб 16 Авг 2014 23:25:42  #354 №378737 

>>378708
>всеми её библиотеками и JVM
И наслаждаемся эксепшонами вида java.org.com.Exceptions.Numeric.DivisionByZero и прочими "радостями" от жвм.

Аноним Суб 16 Авг 2014 23:28:26  #355 №378740 

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

Аноним Суб 16 Авг 2014 23:30:33  #356 №378743 

>>378740
Мсье разраба6тывает статику или я не понял? JavaScript FTW!

Аноним Суб 16 Авг 2014 23:32:18  #357 №378748 

>>378723
>2014 год ёпта. В большинстве энтерпрайза уже давно внедряется плоская иерархия и люди так же ходят в домашних тапочках, сидят на мягких подушках, курят кальяны в офисе и хранят бухло в ящике, как и во всяких хипстер-стартапах.
Согласен. Зацените эту банко-хипстер-парашу: https://rocketbank.ru/pages/man-hunt

Аноним Суб 16 Авг 2014 23:36:58  #358 №378753 
1408217818106.jpg

>>378737
А зачем ты делишь на ноль? Тебе разве не говорили, что этого делать нельзя? Эксепшоны как раз и нужны чтобы предотвращать конец света.

Аноним Суб 16 Авг 2014 23:59:01  #359 №378774 
1408219141342.jpg

>>378753
Cмишно, но суть не в этом был.

Аноним Вск 17 Авг 2014 00:29:00  #360 №378791 

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

Аноним Вск 17 Авг 2014 00:38:52  #361 №378796 

>>378791
ДА ТЫ ТУПОЙ ЧТОЛИ, СУКА???!11 ЧЕ ТЫ МЕНЯ БЕСИШЬ-ТО А? ЕСЛИ ПИШУ НА КЛОЖУР, МНЕ ХОЧЕТСЯ НОРМАЛЬНЫЕ ЭКСЕПШОНЫ, А НЕ МАЛАФЬЯ ВИДА ЖАВА.ГОВНО.МОЧА.ПИЗДА.ПИЗДАНЕНАЙДЕНА.

Аноним Вск 17 Авг 2014 01:20:28  #362 №378812 

>>378796
И чем же они не нормальные, Маня?

Аноним Вск 17 Авг 2014 07:38:27  #363 №378844 

>>378812
Тем что ты пидор тупой, вот чем.

Аноним Вск 17 Авг 2014 20:05:01  #364 №378997 

>>376083
заливай все в бд и юзай thinking sphinx

Аноним Вск 17 Авг 2014 22:23:58  #365 №379020 

>>378997
Зачем ему сфинкс? Он вроде никаких еба поисков делать не собирается. А даже если и собирается пусть elastic search использует.
>>376083
Бери постгрес, создавай две таблицы, для постов и для юзеров, судя по твоему описанию тебе даже индексы не понадобятся. Я так понимаю скрипт у тебя может работать и без участия рельс, если так лучше используй sequel вместо AR.

Аноним Пнд 18 Авг 2014 13:11:29  #366 №379172 

SASS vs LESS

Так как с фронтендом мне возиться не с руки, решил использовать для этого гем twitter bootstrap >>377088 но ведь изначально твиттор-бутстрап написан с помошью лесс. А рельсы изначально поставляются с сасс, и не сломается у меня что нибудь из за этих конфликтов?

UPDATE: залез сейчас на сайт twitter bootstrap и там уже написано что и сасс он тоже поддерживает. Но вопрос все равно остается уже просто из любопытства. Какой из препроцессов CSS лучше? С учетом того, что ни один из них я не знаю, а только просмотрел синтаксис, и особых различий не заметил.

Аноним Пнд 18 Авг 2014 13:45:26  #367 №379190 

>>379020
Да я уже перекатился на AR сто лет назад, кое-как набутстрапил морду и все такое. И как без индексов? Миллионы записей же. Уже десятки миллионов. Две таблицы - суть переизобретение индексов.

Ты мне лучше поясни за БД без рельсов. Мне понравился AR, но впердоливать его, чтобы можно было с БД играться из терминала, чтобы миграции работали и прочее - это только вручную, как я понял, да и вообще как-то не труЪ, вроде. Sequel, говоришь? Ну-у, я присматриваюсь, но не понял, как накатывать миграции и как там прикрутить индексы, например. Кстати, чем он лучше AR, кроме неудобства вкорячивания первого в приложение? И не будет ли подводных камней, если я захочу базу после Sequel отдать AR? А то в случае чего гонять данные туда-сюда будет слегка долго при таком их количестве.

Аноним Пнд 18 Авг 2014 13:48:29  #368 №379193 

>>379172
> изначально твиттор-бутстрап написан с помошью лесс
> bootstrap-sass
> sass
За тебя уже все зделали, можешь трогать LESS-переменные в SASS-файлах.

Аноним Пнд 18 Авг 2014 13:51:46  #369 №379195 

>>379193
Т.е. можно одновременно использовать yoba_name.css.scss и yoba_name.css.less?

Аноним Пнд 18 Авг 2014 13:52:57  #370 №379196 

>>379190
Вопрос с миграциями и индексами снят. Я уже привык к модной хипстерской документации в README.md на гитхабе просто. Впрочем, прятать основные моменты среди соплей и воды, которые могут понадобиться уже совсем позже, тоже не очень хорошо.

Пнд 18 Авг 2014 17:06:39  #371 №379284 

>>379195
Одновременно можешь использовать yoba_name.css.scss.less.
Cначала yoba_name пройдет через лесс, потом через сacc, потом станет как обычный css.

Аноним Пнд 18 Авг 2014 20:22:34  #372 №379326 

Посоны, я к вам за советом по проектированию приложения. Структура такая, будет сайт и десктопное приложение, при этом приложение будет посылать на сайт статистику, а с сайта можно будет управлять этим приложением.
Теперь о предварительной схеме на пикче. У каждого пользователя на странице профиля будет показываться статистика и элементы управления. Обмен информацией будет происходить через вебсокет, и вот это у меня слабое место, так как раньше я не работал с ними. Может вы мне поясните как это сделать правильно. Пока я вижу это так: на стороне сервера будет запущен например вот это вебсокет сервер https://github.com/websocket-rails/websocket-rails и у каждого юзера будет свой канал, на который будут подписаны его десктопные приложения. Или же для каждого юзера надо будет запускать свой отдельный вебсокет сервер?
Ну и еще может кто посоветует что нибудь по вебсокету, например как к нему лучше подцепиться?

Аноним Пнд 18 Авг 2014 20:23:09  #373 №379327 
1408378989255.jpg

>>379326
Пикча отклеилась.

Аноним Пнд 18 Авг 2014 20:46:40  #374 №379330 

>>379326
>у каждого юзера будет свой канал
>посоветует что нибудь по вебсокету
>https://github.com/websocket-rails/websocket-rails

Аноним Пнд 18 Авг 2014 22:59:08  #375 №379376 

>>379326
Одного вебсокет сервера будет достаточно, если у тебя там конечно не миллионы юзеров.

Аноним Втр 19 Авг 2014 05:35:23  #376 №379460 

Возможно, я просто пока не очень привык. Перекатываюсь с Питона в Руби просто посмотреть. Нет ли проблем с читаемостью синтаксиса? Ведь Питон очень прост и приятно читается, как книжечка. А здесь же миллиард non-alphabet символов, и используются они очень активно. Не C++-параша, конечно, но все-таки.

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

Аноним Втр 19 Авг 2014 08:44:07  #377 №379477 

>>379330
>>379376
Спасибо за ответы :3. Значит буду делать отдельный канал для каждого юзера.

Аноним Втр 19 Авг 2014 16:14:21  #378 №379557 

>>379460
Синтаксис у Руби намного проще Питона.

Ruby Втр 19 Авг 2014 16:26:02  #379 №379562 

>>379557
Идеология в целом тоже.

Аноним Втр 19 Авг 2014 16:41:33  #380 №379563 

>>379562
с этого места изложи по-подробнее, пожалуйста

Аноним Втр 19 Авг 2014 18:12:38  #381 №379606 

>>379563

гвидо лох)))

Аноним Втр 19 Авг 2014 20:29:51  #382 №379655 

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

Аноним Втр 19 Авг 2014 20:42:10  #383 №379657 

>>379655
Вообще, сейчас я интересовался скорее на будущее, потому что мне постоянно приходится выкачивать сотни мегабайт говна, а потом его разбирать. Я думал сначала SQLite использовать, но не захотел шквариться о голый SQL вообще. AR — единственное, что мне было известно из мира ORM. Sequel выглядит правда довольно вкусно.

Теперь о старом. Запросы к базе делаю. @posts = Post.where(uid: params[:uid]), например. В данный момент у меня девяносто миллионов постов на два миллиона уникальных юидов. Не представляю, как без индекса по колонке uid мне выполнить запрос за разумное время, но если ты знаешь какую-то особую магию, то мне будет очень интересно и полезно узнать.

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

Аноним Втр 19 Авг 2014 20:48:41  #384 №379663 

>>379657
>Не представляю, как без индекса по колонке uid мне выполнить запрос за разумное время
Все ок, тут и правда индекс нужен.

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

Аноним Втр 19 Авг 2014 20:52:40  #385 №379667 

>>366707
Лол, вот это я понимаю хайлоад уровня руби

Аноним Втр 19 Авг 2014 21:46:59  #386 №379677 

>>378615
Оставь почту или скайп.

Аноним Срд 20 Авг 2014 00:30:57  #387 №379734 

>>379663
Спасибо за внимание, кстати, бро. Я тогда ещё немного поспрашиваю, хорошо?

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

Смотри. У поста есть ID. Ну, не внутренний рельсовый, а тот, который в социальной сети. Есть колонки group_id, topic_id и прочее. Мне нужно для каждого topic_id в каждой group_id получать максимальное значение ID поста. Чтобы бот мог всегда спросить, какой тут и тут был последний пост. Я так понимаю, какой бы хитрый запрос я ни нагуглил, мне нужно ещё какие-то особые индексы делать или даже хуки какие-нибудь, иначе всё равно будет очень много итераций по записям. Не подскажешь, как тут правильно всё сделать? Конечно же, нет никакой гарантии, что записи у меня все отсортированы как надо и я могу просто взять последнюю.

Аноним Срд 20 Авг 2014 05:56:00  #388 №379773 

>>379734
Можно попробовать составной индекс на ID, group_id и topic_id, но вообще, по-хорошему, надо бы все через explain прогонять.

мимо-другой-руби-кун

Аноним Срд 20 Авг 2014 09:20:47  #389 №379803 

>>379734
http://api.rubyonrails.org/classes/ActiveRecord/CounterCache/ClassMethods.html

Аноним Срд 20 Авг 2014 10:59:11  #390 №379833 

Рубисты, как сохранить данные в контроллере, при этом не сохраняя их в БД? Почему то переменную которую я назначаю через attr_accessor всегда равна nil. Или может их надо сохранять не в контроллере? Я думал про куки, но как то это неправильно.

Аноним Срд 20 Авг 2014 13:32:55  #391 №379866 

>>379833
Что ты сделать хочешь?

Аноним Срд 20 Авг 2014 13:38:50  #392 №379869 

>>379833
контролер не хранит информацию, можеш сохранять в памяти

Аноним Срд 20 Авг 2014 13:40:00  #393 №379870 

Сап, аноны. На трайруби дошёл до места с сортировкой массива. Ради интереса попробовал sort вместо sort! - результат тот же. Для чего тогда нужен восклицательный знак?

Аноним Срд 20 Авг 2014 14:01:06  #394 №379882 

>>379870
a = [2, 3, 1]
a.sort
a
>[2, 3, 1]
a.sort!
a
>[1, 2, 3]

Аноним Срд 20 Авг 2014 14:04:35  #395 №379884 

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

>>379869
Каким образом?

Аноним Срд 20 Авг 2014 14:08:12  #396 №379889 

>>379870
В руби есть соглашние. Методы, оканчивающиеся ? возвращают булево значение. Методы, оканчивающиеся на ! изменяют значение входного параметра. Без ! метод вернёт значение, не меняя входящий параметр

Аноним Срд 20 Авг 2014 14:33:57  #397 №379906 

>>379882
Вот что мне выдал tryruby:
> ticket
=> [12, 47, 35]
Success!
> ticket.sort
=> [12, 35, 47]
>

>>379889
Спасибо.

Аноним Срд 20 Авг 2014 16:49:30  #398 №379928 

>>379884
В сессию складывай тогда, потому что при следующем реквесте все равно создается новый инстанс контроллера.

Аноним Срд 20 Авг 2014 16:49:58  #399 №379929 

Есть ли какие-нибудь магазины с шаблонами для spree и других ЦМС на руби? Мой сосед крутой дизайнер и верстальщик, а я немного умею рубировать, решили попробовать запилить пару шаблонов и продать их, как думаете, взлетит или лучше не выёбываться и идти на завод?

Срд 20 Авг 2014 17:44:11  #400 №379953 

>>379929
>лучше не выёбываться и идти на завод?
Это.

Аноним Срд 20 Авг 2014 19:08:32  #401 №379972 

>>379953
Нет.

Аноним Срд 20 Авг 2014 20:39:03  #402 №379999 

>>379929
Шаблоны покапают там, где скачал, поставил, работает. Как битрикс или вордпресс. Руби, по крайней мере на текущий момент - это только разработка. Иди рубируй в контору какую-нибудь в нерезиновой/паребрик-сити.

Аноним Срд 20 Авг 2014 20:40:50  #403 №380000 

>>379999
>скачал, поставил, работает.
Спри же так и работает.

Аноним Срд 20 Авг 2014 21:11:02  #404 №380006 

А в чем отличие плагинов от гемов? И в какой момент меня должно осенить чтобы я код из lib объединил в гем?

Аноним Срд 20 Авг 2014 21:37:13  #405 №380013 

В чем разница между self и @, например в примере ниже и то и другое присвоит значение? Или будет разница в использовании внутри модели и контроллера?

def some_method
self.name = new_value
@name = new_value
end

Аноним Срд 20 Авг 2014 21:46:33  #406 №380017 

>>380013
@name - это переменная экземпляра класса, а self.name это ты вызываешь метод экземпляра класса name=(value), который и присваивает value к @name.

Бля, как же меня бесят эти "экземпляр класса", "поля", "атрибуты".

Аноним Срд 20 Авг 2014 21:48:40  #407 №380018 

>>380017
И да забыл добавить, self.name не будет работать если ты не пропишешь attr_writer или attr_accessor для name, ну или сам напишешь этот метот от руки

Аноним Чтв 21 Авг 2014 07:56:12  #408 №380111 

>>380018
Так и то и другое присвоит значение переменной name? Где то я читал что в контроллерах надо использовать self.

Аноним Чтв 21 Авг 2014 08:18:41  #409 №380112 

>>380111
Да. Первое явно, второе - через метод-обертку (setter).
Способ через селф более гибок, т.к. ты можешь написать этот метод самому и добавлять всякие проверки и прочее хуемое, а @name это обычное присваивание. Еще надо уточнить, что self.name будет присваивать значение к переменной name только если он объявлен через attr_writer/attr_accessor (дефолтное поведение). В своих сеттерах ты можешь присваивать значение хоть к @фоо, хоть к @аллаху.
>в контроллерах надо использовать self
ну тут хуй знает, я пасс

Аноним Чтв 21 Авг 2014 14:03:28  #410 №380173 

Программач, выручай.

Впервые деплою приложение, написанное при помощи Ruby on Rails. Задеплоить необходимо на сервер, который находится в одной локальной сети со мной. На сервере и у меня стоит Windows.

Пишу код в RubyMine, так что решил проделать для этого следующее:
- Установил и запустил на конечном сервере FileZilla Server на 21 порту
- Открыл этот порт для доступа по TCP. Проверил его доступность при помощи telnet'а -- всё нормально
- Создал пользователя в FileZilla Server, установил у него Home Directory
- Попытался подключиться к серверу при помощи FileZilla Client, указав правильный IP-адрес, порт, имя пользователя и пароль -- получаю в ответ следующие надписи:

Status: Connecting to 192.168.0.xxx:21...
Status: Connection established, waiting for welcome message...
Error: Connection timed out
Error: Could not connect to server

Welcome message стандартный, я его не трогал.

В чём может быть дело? Или, может быть, есть более простой способ деплоить приложения, написанные при помощи Ruby on Rails?

Аноним Чтв 21 Авг 2014 15:13:28  #411 №380187 

>>380173
>На сервере и у меня стоит Windows
>сервер на windows
>спермопроблемы
С какой целью ты его вообще собрался на шиндошс-сервер деплоить? Гайдов по деплою в сети дохера, но не на шиндошс же.

Аноним Чтв 21 Авг 2014 19:41:28  #412 №380303 

>>380173
Спермопроблемы, сириусли. Накати на сервак хотя бы убунту. И если не хочешь удалять винду, то делай новый сервак.

А писал ты приложение тоже под виндой? Как у тебя гемы хоть заработали?

Аноним Чтв 21 Авг 2014 19:57:39  #413 №380310 

Сап руби_няши. Задача: надо очищать таблицу каждую минуту, при этом удалять все записи старше 1 часа. Как в рельсах это лучше сделать? Или достаточно написать скрипт, который бы стартовал одновременно с сервером?

Аноним Чтв 21 Авг 2014 20:38:05  #414 №380328 

>>380173
Ты ведь думаешь, что раз юзал только шиндошс, то на нём всё будет проще? Это не так. Если 97% делают это на линухе, то, пытаясь делать это на винде, ты заработаешь полный геморой. Особенно на руби.

Аноним Чтв 21 Авг 2014 20:59:23  #415 №380334 

>>380310
Овердохуя способов.
1. Через крон
2. Запускать при запуске рельсового приложения тред который будет раз в минуту просыпаться и удалять записи (с этим вариантом будет осторожнее, если запускаешь много процессов с приложением)
3. Использовать sidekiq/resque/delayed_job. После завершения задачи сразу в ней и создавать новую которая запуститься через минуту.

Аноним 22/08/14 Птн 05:08:46  #416 №380432 
>>380310
1) https://github.com/javan/whenever
2) https://github.com/tobiassvn/sidetiq
Аноним 22/08/14 Птн 07:50:19  #417 №380441 
>>380334
>>380432
Спасибо няши. Видимо для моей задачи лучше всего подходит https://github.com/javan/whenever
Аноним 22/08/14 Птн 15:29:02  #418 №380539 
Вот вы говорите опенсорс да опенсорс. А где этот самый опенсорс найти то? Ну с гемами и плагинами понятно, это гитхаб. Но как найти исходники сайтов, чтобы посмотреть как их делают профессионалы?
Аноним 22/08/14 Птн 16:53:22  #419 №380581 
>>380539
гитхаб.ком/ekremkaraca/awesome-rails
Список проектов. Ещё есть assembly.com - там делаются Helpful и Coderwall (по-моему оба используют ембер). Можешь помогать и получать монетки и получать какой-то процент от дохода приложения. Ещё есть http://opensourcerails.com/
Аноним 22/08/14 Птн 23:10:00  #420 №380742 
>>380581
>assembly.com
Рубаны, кто-то имеет опыт с этим сервисом, вообще стоит лезть в это?
Аноним 24/08/14 Вск 10:39:36  #421 №381063 
14088623760850.jpg
Рельсач, как в рельсах организовать работу верстальщика? Хочу сделать из друга верстальщика на наш проект(хотя сам верстку знаю на достаточно примитивном уровне, друг же ее не знает вообще). Надо ли ему устанавливать на комп линукс, рельсы и запускать сервак? Надо ли ему изучать хелперы? Или есть другой путь? Может есть какой нибудь редактор заточенный под рельсы?

Алсоу как будет верстка по английски, а то я ничего толкового нагуглить не могу. Либо markup или HTML coding.
Аноним 24/08/14 Вск 11:21:05  #422 №381078 
>>381063
Если надо, чтобы друг сразу вставлял в шаблоны динамику, а по сути делал готовую рельсовую вьюху, то да - ему надо поднимать полностью рельсовое окружение, и вже врубаться в то как работают рельсы на минимальном уровне.
Если статику, то он может верстать на чистом html, но тогда тебе потом надо будет её "оживлять", вставляя туда переменные и методы.
Аноним 24/08/14 Вск 11:23:03  #423 №381079 
>>381078
>вже
уже
Аноним 24/08/14 Вск 11:36:46  #424 №381080 
>>381078
Ок, а какой редактор посоветуешь? Есть какая нибудь линуксовая альтернатива дримвиверу или Xcode? Или надо по хардкору в виме? Сам я пользуюсь рубимайн, но думаю тоже в вим перекатываться.
Аноним 24/08/14 Вск 15:20:48  #425 №381118 
>>381080
atom/sublime, если хочешь поебаться, то вим.
мимо
Аноним 24/08/14 Вск 21:49:40  #426 №381203 
http://pastie.org/private/anvrswfxq7vczkvhm5ugg
Помогите сделать код лучше. Никак не соображу, что поменять, чтобы убрать помеченную строчку.
Аноним 24/08/14 Вск 22:06:39  #427 №381206 
>>381203
не пойму что твой код делает-то и какое значение ты хочешь получить
Аноним 24/08/14 Вск 22:11:59  #428 №381208 
>>381206
Есть массив CSV-строк, надо из него выбрать только те строки, в которых есть нужные мне данные. Например:
Нельзя импортировать подкатегории, в которых не задано имя или айди категории.
csv_rows.select{|row| row[:category_id].present? && row[:name].present?}
Два этих условия я назвал фильтрами. Фильты будут задаваться в классах-потомках, поэтому они в отдельных методах.
Аноним 24/08/14 Вск 23:55:01  #429 №381247 
>>381208
Ну вынеси это в блок.
Аноним 25/08/14 Пнд 10:15:27  #430 №381296 
>>381247
http://pastie.org/private/cwzcrwgrhod2eu5dnsrkvg
Вот так сделал. Так проще писать сложные фильтры и кода меньше.
Аноним 25/08/14 Пнд 12:19:04  #431 №381381 
14089547442250.jpg
Рубисты, пожалуйста, ответьте на вопросы человеку, который хочет начать учить этот язык.
Сам я фронт-енд макака, хочу выучить серверный язык.
Вопрос такой, сначала нужно учить руби, или можно начинать с рельсов? И второй вопрос, в СНГ что-то не сильно много работы для рубистов, если я буду ориентироватся на пендосов, одеск и прочее, то с помощью руби я смогу быть успешным? Простите за платину.
Аноним 25/08/14 Пнд 14:41:57  #432 №381432 
>>381381
Учить ничего не нужно. Сперва ознакомься с общей концепцией руби (всё - класс), списком методов популярных классов. Потом читай Agile web development with rails 4, можно даже несколько раз. Как только будешь знать, что делает 80% кода в книге, можешь идти работать джуниором.
Если дашь скайп/почту, помогу с одеском.
Аноним 25/08/14 Пнд 15:12:21  #433 №381451 
Нубо-вопрос ИТТ. Есть модель дома и жильца, как мне получить массив имен жильцов дома? Я думаю что то вроде этого, но надо подправить синтаксис:

@house.peoples.name.to_a

Апдейт: нагуглил вот такое решение:

@house.peoples.map(& :name)

Это хорошая практика или я свернул не туда?
Аноним 25/08/14 Пнд 17:00:51  #434 №381490 
>>381296
Используй #all? еще https://www.omniref.com/ruby/2.1.2/symbols/Enumerable/all%3F
select пройдет по все коллекции, а all? после первого найденного элемента остановится. Профит в производительности очевиден.
Аноним 25/08/14 Пнд 17:01:44  #435 №381491 
>>381432
[email protected]
другой_кун_которому_нужна_помощь_с_одеском
Аноним 25/08/14 Пнд 17:02:56  #436 №381493 
>>381451
Если это ассоциация, а не массив, то лучше используй #pluck
@house.peoples.pluck(:name)
Аноним 25/08/14 Пнд 17:54:02  #437 №381504 
>>381490
Не годится. Select вернёт мне только валидные записи, чтобы я потом мог с ними работать, а all? - true/false/nil.
Аноним 25/08/14 Пнд 17:58:10  #438 №381506 
>>381493
Точно! Спасибо, анон.
Аноним 27/08/14 Срд 14:14:38  #439 №381911 
Рубисты, кому нибудь предлагали работу в компании Triangle.gs ?
Аноним 27/08/14 Срд 21:05:49  #440 №382008 
Посоветуйте книг для ужененовичков.
Аноним 27/08/14 Срд 22:26:22  #441 №382035 
jopa = double('anal') # Это мок
allow(jopa).to_receive(:insert_dildo) # Это стаб
Всё правильно?
Аноним 27/08/14 Срд 23:17:09  #442 №382060 
>>382008
Metaprogramming ruby. Rails antipatterns. Больше нихуя для счастья не надо
Аноним 27/08/14 Срд 23:24:20  #443 №382062 
>>382060
spasibo
Аноним 27/08/14 Срд 23:53:11  #444 №382071 
>>382060
Кстати, у кого есть второе издание Metaprogramming ruby?
Аноним 28/08/14 Чтв 00:42:28  #445 №382081 
14091721486470.jpg
Ну что вы, анончики, у меня проект разосрался аж на 3 базы данных РАЗНЫХ СИСТЕМ, причем в одной из них около 70 таблиц, с которыми нужно работать. Пришлось писать модель, которая собрала в себя эту жуть.
Я молчу про монгодб, которая хранит в себе статистику использования данных из этих сраных баз данных.
Масштабирование блять называется.
Алсо попробовал рельсы 4.2-beta1, жаль oracle-enhanced сломался с новой адекватрекордом.
Аноним 28/08/14 Чтв 15:57:48  #446 №382170 
Вы кукумбер используете?
Аноним 28/08/14 Чтв 17:26:25  #447 №382189 
>>382170
Нет, конечно
Аноним 28/08/14 Чтв 17:54:16  #448 №382206 
Народ, поясните за Service Objects. В чем смысл создавать одно-методный объект (потипу yourmamasassslapper.new.call()), если можно определить модуль YourMamaAssSlapper::call?
Аноним 28/08/14 Чтв 20:16:31  #449 №382303 
>>382206
Потокококобезопасность же
Аноним 28/08/14 Чтв 20:26:13  #450 №382310 
>>382170
А чем тебе Rspec не нравится?
Аноним 28/08/14 Чтв 21:17:58  #451 №382325 
>>382303
Развей мысль, пожалуйста.
Аноним 28/08/14 Чтв 22:18:06  #452 №382349 
>>382303
Да не, не думаю, что это более потокобезопасно лол
Аноним 28/08/14 Чтв 22:18:30  #453 №382350 
>>382325
+1
Аноним 29/08/14 Птн 00:03:53  #454 №382384 
>>382189
>>382310
У меня как раз рспекофилия. Просто я прочёл сегодня тут:
http://blog.mojotech.com/how-you-can-implement-living-documentation-part-three-in-a-series/
Что кукумбер можно использовать в качестве документации. И вспомнил, как его хуесосили раньше, вот и решил спросить у своих единственных друзей, каково их отношение к этому инструменту.
Аноним 29/08/14 Птн 00:25:09  #455 №382391 
>>382384

Я использовал когда-то. В маленьких проектах особого профита нет. В больших редко когда все эти стори поддерживаются в адекватном состоянии, sad but true.
Аноним 29/08/14 Птн 16:07:49  #456 №382506 
сап, рельсаны, помогите ньюфажку.

Есть ассоциация:

User has_many :comments
Comment belongs_to:user

В модели Comment прописано

validates :user_id, presence: true

Соответствующее поле в таблице есть. Через консоль все работает, в т.ч. при создании comment приписывается нужный айди.

Как сделать, чтобы при создании comment автоматически подставлялся нужный user_id ?

У меня есть хелпер, который даже работает, в духе

def current_user
@current_user ||= User.find_by_remember_token(remember_token)
end

Как его привязать к Comment#new?
Пробовал во вьюхе new просто добавить поле типа @comments.user_id, но срабатывает валидация Cant be blank.
Аноним 29/08/14 Птн 16:40:53  #457 №382518 
>>382506
Не совсем понял вопрос. Но чую что тебе нужно посмотреть в сторону создания ассоциации через родительскую модель.
Например

@user.comments.build #=> инициирует новый коммент с проставленным user_id

@user.comments.create #=> то же самое, только сразу сохранит в базу.

Так что если у тебя форма, то будет что то типа

form_for @current_user.comments.build

А может и не в этом дело. Форме похуй, есть у тебя user_id или нет. Валидация срабатывает, когда ты пытаешься сохранить. А значит проставляться user_id должен в контроллере.

Сформируй четче проблему

#has_many
collection.build(attributes = {}, …)
Returns one or more new objects of the collection type that have been instantiated with attributes and linked to this object through a foreign key, but have not yet been saved.
Аноним 29/08/14 Птн 17:41:43  #458 №382539 
>>382506
Это должно происходить автоматом при условии что все ассоциаци и прочя малафья правильно сделаны.
Аноним 29/08/14 Птн 20:30:26  #459 №382621 
>>382506
Конкретнее:

/Comments/new, форма 'дефолтная', контроллер comments тоже. В моделях прописал ассоциации (как - в предыдущем посте).

Заполняю поля, ошибка ''User cant be blank.''

Через консоль. u=User.Last; u.comment.create работет, у коммента появляется айдишка нужного юзера. Нужно ли в контроллере comments добавлять params.require(:comment).permit(:user_id)? Если я добавляю - падает ошибка

ArgumentError in CommentsController#create
argument out of range

Спасибо.
Аноним 29/08/14 Птн 20:59:29  #460 №382638 
>>382621
А рутсы вложенные?
resources :users do
resources :comments
end

То user_id будет доступен просто с params[:user_id].

Или я тоже не правильно понял вопрос.


Аноним 29/08/14 Птн 21:04:52  #461 №382640 
>>382621
Разобрался, проблема была в экшне Create контроллера Comments.

Добавил там

@comments = current_user.comment.build(comments_params)

и оно заработало. спасибо >>382518 за наводку.
Аноним 29/08/14 Птн 21:08:33  #462 №382641 
>>382638
Кстати, поясни за вложенные ресурсы.

Обязательно в моем случае вкладывать comments в users?

Аноним 29/08/14 Птн 21:25:25  #463 №382643 
>>382641
Необязательно, конечно.

Я бы вложил, если ты извлекаешь комменты преднадлежащие конкретному юзеру. Т.е. путь тогда у тебя будет таким
users/1/comments для экшна index, users/1/comments/new. И в params будет сразу доступен :user_id (здесь = 1). Т.е. при вложеном ресурсе всегда будет доступен ид вышестоящего ресурса в парамс.
Аноним 29/08/14 Птн 21:45:29  #464 №382658 
>>382643
Понял, спасибо.

И последний вопрос(надеюсь).

Хочу из вьюхи comments/show сделать ссылку на юзера, создавшего этот коммент.
Как это правильно реализовать?
Аноним 29/08/14 Птн 21:53:29  #465 №382661 
>>382643
т.к. коммент принадлежит юзеру, то просто
link_to 'автор', @comment.user, или link_to 'автор', user_path(@comment.user), что то же самое.
Но у юзера в рутсах должен быть экшн show.
Аноним 29/08/14 Птн 22:14:35  #466 №382670 
>>382661
работает, еще раз спасибо.

Таки и правда у рубирельсов самое адекватное коммьюнити
Аноним 30/08/14 Суб 01:20:48  #467 №382725 
>>382384
1) удобно юзать для тестов апишки
2) удобно заставлять тестеров описывать юзеркейсы логики, вот только не надо этой вашей капибары

так что да, вполне годно
Аноним 30/08/14 Суб 01:46:43  #468 №382729 
>>382725
Вот и любитель пердолиться с регулярками.
Аноним 30/08/14 Суб 01:57:09  #469 №382732 
>>382729
не, апишка же, формат строгий, нахрен регулярки не нужны
Аноним 30/08/14 Суб 02:36:57  #470 №382733 
>>382725
> 1) удобно юзать для тестов апишки
Поясни-ка. Удобне, чем rspec?
Аноним 30/08/14 Суб 02:51:52  #471 №382737 
>>382733
ну ок
1) юнит тестами апишку не проверишь, ибо нужны интеграционные, поэтому, чистый рспек немного идет боком (хотя можно, но изврат)
2) заказчик из дефолт-сити, очень любил смотреть как что работает и насколько соответствует бизнес-требованиям
пишется примерно вот такая спека

Допустим отправляется запрос на идентификацию по огрн "1246381536"
И запрос отправляется методом "POST"
И в запросе указан тип одижаемого формата данных "xml"
Если выполнить xml запрос на сервер
То запрос должен иметь вид "такой-то"
И тело xml запроса должно иметь вид

получается такой отчет, который показывает поэтапно, где что происходит, куча понятного зеленого текста, можно видеть, как что юзается, заказчик доволен, возникающие баги, в принципе, видно сразу
sageАноним 30/08/14 Суб 05:57:04  #472 №382748 
>>382737
Хуй знает, все это делается рспеком + капибара. а огурец ну его, в одном файле писать сценарии, в другом указывать пути, в третьем шаги, потом еще и поддерживать все это.
Аноним 30/08/14 Суб 13:24:57  #473 №382818 
>>382748
капибара медленная как хрен что, тесты по 20 минут – это ж никакого терпения на tdd не напасешься
Аноним 30/08/14 Суб 13:52:18  #474 №382819 
http://komar.bitcheese.net/ru/%D1%87%D0%B5%D1%80%D0%BD%D0%BE%D0%B2%D0%B8%D0%BA%D0%B8/%D0%BA%D0%B0%D0%BA-%D1%81%D1%82%D0%B0%D1%82%D1%8C-%D1%83%D1%81%D0%BF%D0%B5%D1%88%D0%BD%D1%8B%D0%BC-ruby-on-rails-%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%81%D1%82%D0%BE%D0%BC
Что скажете?
Аноним 30/08/14 Суб 14:22:30  #475 №382828 
>>382819
Отличный пост. Читал по диагонали, но косяков не заметил.
Аноним 30/08/14 Суб 14:54:20  #476 №382855 
>>382819
Норм, я бы подписался, но у тебя хуй знает что, а не сайт.
Аноним 30/08/14 Суб 20:58:30  #477 №382968 
>>382819
лол, норм
Аноним 30/08/14 Суб 23:22:29  #478 №383011 
>>382819
Продолжай, интересно. Раз так мало Рельсо-разработчиков, то может быть возможно устроиться джуниором на удалёнку. А то в моём городе только php, Java и C#, не хочу с ними работать.

Может добавишь комментарии к постам?
Аноним 31/08/14 Вск 07:28:20  #479 №383112 
>>383011
Добавил бы, но это не мой сайт.
Alexander Markov <[email protected]> 2013-01-30T13:33:53Z
Аноним 31/08/14 Вск 12:30:16  #480 №383156 
Поясните за итераторы. Решал четвертую задачу на Euler (http://projecteuler.net/problem=4): нужно найти наибольшее число-палиндром, которое было бы результатом умножения двух трехзначных числе. Написал логичный вроде бы код http://pastebin.com/UKXrhEZV
А вот нихуя, скрипт выдал неверный ответ. Пришлось поправить http://pastebin.com/kAcZhxCh
Теперь ответ верный. Почему в первом варианте дается неправильный ответ? Выходит, что числа умножаются не по порядку?
Аноним 31/08/14 Вск 15:25:17  #481 №383175 
>>383156
И нахуй оно тебе надо?
Аноним 31/08/14 Вск 16:57:50  #482 №383191 
>>383156
Всё просто: допустим, у тебя там x = 998, и хуитка находит палиндром для какого-нибудь y1 где-то в конце диапазона (например, y1 > 900). Потом цикл хуяк - перескакивает на новую итерацию по x = 999, и начинает y снова со 100 перебирать. Ну вот и получается, что может найтись y2 < y1, такой что xy1 > (x+k)y2.
Аноним 31/08/14 Вск 17:56:14  #483 №383196 
>>383156
Просто break надо было сделать после того, как нашел палиндром
Аноним 31/08/14 Вск 18:11:18  #484 №383200 
>>383196
Та же ошибка, что у него, только отраженная в зеркале. Даже если он будет перебирать с конца.
Аноним 31/08/14 Вск 18:48:02  #485 №383209 
>>383191
Оу, понятно. Условно, нашел палиндром 998х999, затем 999х100, после этого палиндромов не было. Но 999х100 меньше чем 998х999, вот и баг.
Аноним 31/08/14 Вск 20:54:01  #486 №383249 
И так, каков вывод, учим дружно рельсы и гребем сотни нефти, или хуйня это все, и лучше учить ноду?
Аноним 31/08/14 Вск 21:23:58  #487 №383256 
>>383011
Кому нужен джуниор, когда нет возможности контролировать его весь рабочий день?
Аноним 31/08/14 Вск 22:24:38  #488 №383278 
>>383249
Какая нода, сударь, ёпты. Хаскель нужно учить.
Аноним 31/08/14 Вск 23:22:44  #489 №383291 
>>383278
Я серьезно, приятель. Это вопрос жизни и смерти, рельсы или нода.
Аноним 31/08/14 Вск 23:30:26  #490 №383293 
>>383291
Если с нуля, то рельсы, если есть какой-то опыт разработки хотя бы бложика, то можно пробовать ноду. Иначе - очень сильно поначалу может крутить мозги.
Аноним 31/08/14 Вск 23:45:50  #491 №383297 
>>383293
Наоборот же. Нода спокойно может заменить похапе в том смысле что там из коропки голяк.
В рельсах же дохуя всего готового, чтобы дядки с опытом не долбили себе жопу каждый раз изобретая велосипед.

мимодругойколеблющийсямеждурельсамиинодой
Аноним 01/09/14 Пнд 00:06:10  #492 №383300 
>>383297
>мимодругойколеблющийсямеждурельсамиинодой
Оно и видно.
Аноним 01/09/14 Пнд 00:11:00  #493 №383301 
>>383291
Scala?
Аноним 01/09/14 Пнд 00:16:31  #494 №383303 
Посоны проблема.

Хочу апдейтить модель, допустим Book, с полями title, autor, isbn,price,description бла бла бла.

Но хочу апдейтить ее не полностью, например, только autor и title в одной вьюхе, остальное - в другой.

как правильно запилить?
Аноним 01/09/14 Пнд 00:20:12  #495 №383304 
>>383293
Не с нуля, сам на js пишу, правда к сервер сайду еще не прикасался, не считая попыток дергать ноду и експресс.
Вот и думаю, что в итоге будет лучше.
Аноним 01/09/14 Пнд 02:18:33  #496 №383323 
>>383304
Тогда ноду, то, что один код на серваке и фронте - пиздёшь! Один язык - да, но не код.
Аноним 01/09/14 Пнд 03:50:17  #497 №383331 
>>383303
Сделай две формы, например, _full_form.html.erb и _partial_form.html.erb. В update.html.erb вызывай нужную форму в зависимости от параметра, который ты будешь передавать в BooksController#update.
Аноним 01/09/14 Пнд 16:07:02  #498 №383390 
Как накатить rspec на уже существующий проект? Все что я нагуглил это генериновать тесты на все контроллеры и модели врчуную типа: rails g rspec:controller ControllerName. А можно ли сделать так чтобы rspec сгенерировал все нужные тесты самостоятельно?
Аноним 01/09/14 Пнд 16:25:41  #499 №383393 
>>383390
Нет. Как, по-твоему, рспек узнает, что именно тестировать в методе?
Аноним 01/09/14 Пнд 16:38:56  #500 №383395 
>>383390
Можно немножко сгенерировать вот этим - https://git_hub.com/Nedomas/zapata
Но всё равно придётся самому писать нормальные тесты с изоляцией и т.д.
Аноним 02/09/14 Втр 14:07:54  #501 №383553 
Как правильно делать подобное?
Схема бд:

User
id
..

Post
id
user_id
..

Comment
id
user_id
post_id
..

Модели
User.rb
has_many :posts
has_many :comments

Post.rb
belongs_to :user
has_many :comments

Comment.rb
belongs_to :user
belongs_to :post

Теперь вопрос:

Допустим, создаю пост (вьюха не важна).
@post = current_user.post.build(post_params)

Тут же, на этой же странице хочу коммент к этой новости от текущего юзера
Как его связать с news.id?
@сomment = current_user.comments.build(comment_params)# а дальше хуй его знает ?

Может, это неправильная ассоциация? Где подсмотреть такую реализацию? (проект на гитхабе)
Аноним 02/09/14 Втр 14:55:51  #502 №383559 
>>383553
@post = current_user.post.create(post_params)

@сomment [email protected](comment_params)

В comment_params передавай current_user.id или тебе надо обязательно build а не create?
Аноним 02/09/14 Втр 16:07:50  #503 №383582 
>>383559
типа так:

comments_controller.rb

def comment_params
params.require(:comment).permit(:name, :body, :user_id, :news_id, current_user.id)
end

Делаю во вьюхе post/show.html.erb

<%= form_for (@comment) do |f| %>
Бла бла бла
<%= f.submit %>
<% end %>

в post_controller#show
def show
@сomment = @news.comments.create(params[:comments])
end

В итоге получаю ошибку

First argument in form cannot contain nil or be empty

т.е. в @comment не приходит нихуя. ЧЯДНТ?
Аноним 02/09/14 Втр 16:09:32  #504 №383584 
>>383582
>:news_id
:post_id
>@news.comments.create(params[:comments])
@post.comments.create(params[:comments])

быстрофикс
Аноним 03/09/14 Срд 09:01:04  #505 №383714 
>>383582
def comment_params
params.require(:comment).permit(:name, :body, :user_id, :news_id, current_user.id)
end
по моему тут current_user.id лишнее


Делаю во вьюхе post/show.html.erb

<%= form_for (@comment) do |f| %>
Бла бла бла
<%= f.submit %>
<% end %>
в post_controller#show
def show
@сomment = @news.comments.create(params[:comments])
end
а тут ты пытаешься создать комент, которого еще нету. Используй вместо form_for, form_tag и погугли по этому слову
Аноним 03/09/14 Срд 11:37:28  #506 №383741 
14097298488040.png
2.1.2 :001 > fork ? true : false
=> false
=> true

Как же так получается?
Аноним 03/09/14 Срд 22:28:52  #507 №383903 
>>383741
Creates a subprocess. If a block is specified, that block is run in the subprocess, and the subprocess terminates with a status of zero. Otherwise, the fork call returns twice, once in the parent, returning the process ID of the child, and once in the child, returning nil. The child process can exit using Kernel.exit! to avoid running any at_exit functions. The parent process should use Process.wait to collect the termination statuses of its children or use Process.detach to register disinterest in their status; otherwise, the operating system may accumulate zombie processes.
Аноним 04/09/14 Чтв 19:10:41  #508 №384098 
суп, рубаны.

Поясните за тестирование. Реально ли везде на рельсах используют TDD и BDD? Везде пишут тесты и моделей и конроллеров?
Какие гемы для тестов сейчас юзаются и что нужно знать?
(Rspec, cucumber, capybara, etc?). Интересует чисто практическая часть, чтобы не изучать устаревшее говно.
Аноним 05/09/14 Птн 03:35:06  #509 №384222 
Перекат.
https://2ch.hk/pr/res/384220.html
https://2ch.hk/pr/res/384220.html
https://2ch.hk/pr/res/384220.html
https://2ch.hk/pr/res/384220.html
comments powered by Disqus

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