Это копия, сохраненная 27 января 2015 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
1. C чего мне начать, чтобы стать рубистом?
Отличным началом будет Eloquent Ruby или The Well Grounded Rubyist.
Затем читаем Metaprogramming Ruby. На протяжении чтения вы должны писать код, конечно же.
Чтобы не задавать глупых вопросов уровня дибилоида, который не нашёл доки > http://ruby-doc.org/core-2.1.4/
Вопросы уровня
>метод чтобы разбить строку в массив
игнорируются, автора исключают из школы и отправляют в биореактор.
Можно пройти руби онлайн - http://tryruby.org/levels/1/challenges/0
Не веришь в свои силы? Прочитал уже книжек много и силы свои хочешь познать, сделай - http://rubykoans.com
2. Какой gem посмотреть, чтобы понять, как писать код?
Лучше всего посмотреть небольшие gem'ы вроде cancan, devise, camping.
3. Есть ли GUI для руби?
Да. Есть обвязки к Qt, GTK, wxWidgets, Shoes, fxruby (одобренный).
4. Можно ли писать на руби мобильное ПО?
Да. Для iOS есть RubyMotion промышленного качества, для Android - весьма тормозной(ну это пока) ruboto. Для WinPhone традиционно ничего нет, но его ценителям не привыкать.
5. Как установить разные версии рубей?
Легко и просто: https://github.com/sstephenson/rbenv
Не так просто: https://rvm.io
6. Что почитать по рельсам?
http://guides.rubyonrails.org
http://ruby.railstutorial.org
API: http://api.rubyonrails.org
Для дотошных читателей есть The Rails 4 Way.
7. Хорошие практики по руби и рельсам?
Читаем Rails AntiPatterns, смотрим Rails Best Practices, также неплохо посмотреть Rails Recipes.
8. Ruby/Rails блоги, рассылки и твитторы
IRC каналы на FreeNode: #ruby, #ruby-core, #RubyOnRails, #rails (не очень активен).
Твитторы @rails, @dhh, @yukihiro_matz, @wycats, @tenderlove
Рассылки ruby-core, rails-core, rails-talk
Подкасты:
- http://rubyrogues.com
- http://ruby5.envylabs.com
Скринкасты:
- http://railscasts.com
- https://peepcode.com
- https://www.destroyallsoftware.com
- http://railsforzombies.com
Блоги:
- rubyflow.com - каждый день новости, новые библиотеки, обновления, все дела.
- rubysource.com - читаем интервью, хорошие практики, и безумные сравнения упоротого дибила-индуса на самом деле их пропускаем
- rubyinside.com - новости, туториалы.
- rubyweekly.com
- http://37signals.com/svn
- http://yehudakatz.com
- http://afreshcup.com
9. Я не могу в английский, что делать, анон?
Идти учить английский, без него тут делать нечего.
10. Есть ли у руби русское коммьюнити?
Нет. Вернее есть, но оно протухло и там полно людей у которых чсв высоко.
Яркий пример - ruby@conference.jabber.ru
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://arhivach.org/thread/32141/
http://arhivach.org/thread/35764/
В мертвом треде.
Например в питоне это можно сделать так:
models.__getattribute__(table).method
А в руби?
Ты хочешь вызвать динимически метод? Тогда используй foo.public_send(:to_s) == тоже самое, что и foo.to_s.
foo.class.method_name
Надо бы добавить этот сайт в шапку.
Интерпрайзное говно для петушков, недостаточно хипстовато.
http://www.ozon.ru/context/detail/id/1872063/
Лиспоблядь хуже пхпребенка
Ну в /config гля, ни знаю
>О, на кодекадеми появился курс Rails, а я как раз закончил Ruby!
>Пикрелейтед
ACHIEVEMENT UNLOCKED
АЗАЗА руби курс унижает питурда в собственном руби курсе
Как в рельсах выполнить кучу инсертов, одной транзакцией без использования сырого sql?
Использовал ActiveRecord::Base.transaction, работает хоть и быстрее, но все равно выполняет инсерты отдельно и нехило задалбливает базу.
Попробуй Person.create(массив из хэш для каждой записи).
Person.create([{name: 'Ivan', age: 1}, {name: John, age: 100}])
Мертв он.
http://stackoverflow.com/questions/15784305/batch-insertion-in-rails-3
Если ты на postgres, то походу вот решение. Надо юзать gem, ибо драйвер еще не написан для create. Но я хз.
На MySQL тоже работает оказывается.
В общем через activerecord-import можно одной транзакцией делать.
Спасибо за помощь
> Отличным началом будет Eloquent Ruby
Вот читаю, и чуть ли не каждую страницу "кароч так принято )) Почему? Об этом мы погорим в главе такой-то."
Мне кажется, или это немного хуево? Хоть и лучше очередного "Its Ruby magic. Aint gotta explain shit."
Если не нравится, читай вторую книгу из оп-поста. Там более детально. Потом можешь быстро пробежаться по Eloquent Ruby и моменты с "кароч так принято" даже не надо будет объяснять если не дебил, конечно
Решил. В logout уничтожается сессия и, соответственно, csrf-токен. В ответе на logout посылаю json с новым токеном, в клиенте сохраняю и прилепляю токен к каждому запросу.
http://blog.softr.li/post/43146401263/finally-correctly-dealing-with-rails-csrf-protection
google -> sort vs sort_by ruby
http://brandon.dimcheff.com/2009/11/18/rubys-sort-vs-sort-by.html
Спасибо. Я читал про этот The Schwartzian Transform в документации рубей, но не вдуплил, думал, тут разжуют.
Нахуя ты всю сессию уничтожаешь? Уничтожай токен авторизации или там зашифрованный id пользователя, хуй знает что там у тебя
Devise и sorcery делают так. Чо у меня не как у людей то будет.
Model.where('hui <= ? AND pizda >= ?', var, var)
Это если весь день работать.
Кресты? Не уверен, что можно не остаться без работы, зная кресты. Уж лучше тогда какую-нибудь джаву учить или пхп, тогда точно не останусь без работы. Но джаву я и так довольно неплохо знаю, а пхп у меня вызывает ментальное отвращение. Ничего личного, пхп куны, если вы это читаете, я против холиваров, просто язык не нравится.
Я, скорее, из гейособлядков, так что не вариант.
Интересный момент: западная статистика не справедлива для этой страны. Он пишет, что работодатели заинтересованы в node.js разработчиках, например, но я ни разу вообще не видел вакансию node.js разработчика на просторах hh в моем регионе. Это обидно, ноду я тоже хорошо знаю.
На работе пишу всякие приблуды для внутреннего использования на рельсах, хотя работа далека от программирования. Ситуация шаткая, могут выпереть в любой момент. Когда этот момент настанет, хочу перекатиться в погромизда. Реально ли в этой стране устроиться фултайм рубигосподином? Возьмут ли меня без "реального" опыта программирования в команде? Еще интересно, какие задачи ставят, не CRUD же по 8 часов в день обсасывать. Подозреваю пиздилки контента, парсеры. Пилите кулстори, вобщем.
мне нужна работа, на которой мне нравилось бы работать. Рельсы мне нравятся определенно больше, чем джаваскрипт.
тащемта запределами стартапового пузыря нода тоже нафиг не нужна, как мне кажется
За пределами стартапового пузыря вообще нужно что-то, кроме джавы и пхп?
У кого-нибудь есть эта книга?
Наследую класс от Application Controller, ошибок не выдает, просто не срабатывает перед методом.
потому что нехуй это сувать в хелпер, это контроллерная тема
И вообще, каких правил придерживаетесь сами?
http://www.justinweiss.com/blog/2014/02/17/search-and-filter-rails-models-without-bloating-your-controller/
Как лучше сделать вывод пустой коллекции объектов по дефолту, пока не выполнится поиск?
Не хочется для этого делать поиск пост запросом.
Не обращайте внимание, что то затупил. Сделал через обычную пагинацию. Совсем заработался...
Антоны, приветствует вас RoR-js-макак. Подскажите пожалуйста какую-нибудь книгу, которую можно читать, скажем в метро. Я имею ввиду чтобы не было нужды выполнять упражнения(и вообще поменьше практики). Думал почитать алгоритмы от сейджвика, так там без кодинга вообще толку нету. Я думаю в сторону чего-нибудь по паттернам, мастшабированию, best practices, unix, базы данных. Уровень у меня "крепкий junior" где-то. Прочитал уже Growing rails applications, metaprogramming ruby, speaking javascript, object oriented design. Начал confident ruby но чето хуйня какая-то
Так что ананасы, будущее у рельс отсутствует? За год node совсем вытеснит рельсу, и тогда работы совсем не останется, про фриланс можно будет забыть.
Это два автора.
http://guides.railsgirls.com/
азаза
> These guides are built to provide tools and a community for women to understand technology and how to build their ideas.
Какой-то петухан даже на русский перевел, лол.
Не холивара ради, могу быть не прав, но после рельс писать на ноде очень неприятно, настолько все топорно и не интуитивно, такое чувство что не для людей оно делалось. Как мне показалось, качество библиотек тоже заметно ниже. Не понимаю чем вызван хайп, для перформанса есть ведь куда более приятные технологии тот же ёрланг.
Думаю наперёд. Назови её change_column_default_in_table
Ну ебать. Одни говорят - не пихай логику в модель БОХНАКАЖЭТ!, другие... я в замешательстве.
Гугли FormObject. Делаешь его на каком-нибудь Virtus, добавляешь ActiveRecord-валидации и едешь.
Как это исправить?
Установить нормальную ОС, можешь в виртуалку.
Ну так ты подгоняешь все под уже всем известный шаблон. У тебя получается объект аля-ActiveRecord, только без сохранения в базу. Часть логики у тебя остается в контроллере как обычно(собрать параметры, проверить права) а та часть которая делает работу(бизнес-логика, валидация) идет в модель. И кто тебе сказал что в модель не надо логику пихать? Кинь ему в лицо ссаную тряпку.
А вот и уебок пихающий логику в модель вылез. Как там разрослась модель уже до 1к строк?
А где ее по твоему хранить, лалка? Логика самой модели - лежит в модели. Точка. Если ты видишь что модель разрастается - значит нужно выносить логику в другие классы. Есть value object, композиция, сервисы или разбить просто на модули
Почему уёбок? Всё правильно же делает.
Рельсы живут за счет существующих проектов, каждый из которых рано или поздно загнется. Новые проекты делать на рельсах - абсурд. Действительно, зачем содержать золотых рельсобогов по $30 в час если можно нанять пхпребенка на Yii за пачку доширака в день.
Как выполнить поиск по одной модели, а выдать результаты из другой?
Например, у нас есть таблица с сотрудниками, где у них есть имена и айди их должности, и таблица с айдишниками должностей и их названиями. При вводе названия должности выводится список сотрудников, которым принадлежит эта должность.
гугли асоциации
>не CRUD же по 8 часов в день обсасывать.
У меня для тебя плохие новости
мимо уже-как-год-рейлс-кун
Плохие новости у меня для тебя.
А также интересует вопрос, какие лучше плагины накатить на ST2 начинающему рельсоводу? Интересуют в первую очередь те, что так же хайлайтят текст, как на изображении, которое я кинул. Извиняйте, я совсем профан.
Похожие шрифты: bauhaus, baumans, hermit, monofur, string variable.
Точно сказать не могу. Алсо, спросил бы у автора скрина.
Fedora
Linux Mint, а то будешь вместо гемов пердолиться с прыщами.
Arch конечно. Остальное всё несерьёзно.
Кстати да, стоит ли через VM Oracle поставить прыщи для рубина? Или можно и на винде успешно кодить?
На винде у тебя все будет тормозить. Не знаю как обстоят с этим дела сейчас, может быть уже выпустили соотвтетствующие патчи, но два года назад я ставил себе виртуалку и работал "удаленно" заливая файлы по sftp. Это работало значительно быстрее чем запуск руби по шиндовс.
Мамка твоя дерьмо, еблан. Гостевая система не знает, как ты в своей ворованой сперме окно растягиваешь. Гугли «virtualbox guest additions».
Спасибо, уже нагуглил. Скачиваю исошник. Кстати, почему-то drag and drop не работает, хоть галки "в обе стороны" выставил.
Ты - это я два дня назад, лол.
Поясняю по-минимуму: ты установил сам язык в систему. То, где писать код, называется IDE. По сути это - обычный текстовый редактор. Можно (но сложно) хоть в блокноте писать, не шучу. Для удобства же разработки есть множество текстовых редакторов. Я, к примеру, использую очень приятный Sublime Text 2. Он умеет дружить с руби, после накатки парочки пакетов на него - даже хайлайтит тебе разные объекты в коде. После того, как написал код - сохраняешь его с расширением .rb в папочку специальную, а через консоль обычную его запускаешь. Пиздос, я всегда думал, что для программирования есть специальные программы...как в том же питоне или C#, но нет, тут всё в текстовом редакторе. Если есть какие-нибудь контакты для связи, то оставляй - будем учиться вместе.
Спасибо, дико выручил, я тоже думал, что для каждого языка своя программа делфи-аутист-2курсота.
dacella94@mail.ru
>накатки парочки пакетов на него - даже хайлайтит тебе разные объекты в коде.
поясни за это, анон.
http://blog.codeclimate.com/blog/2012/06/21/sublime-text-2-for-ruby/
поясняю
открываешь консоль (ctrl+') или Preferences->Show Console
копируешь туда этот код: import urllib2,os,hashlib; h = '7183a2d3e96f11eeadd761d777e62404' + 'e330c659d4bb41d3bdf022e94cab3cd0'; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); os.makedirs( ipp ) if not os.path.exists(ipp) else None; urllib2.install_opener( urllib2.build_opener( urllib2.ProxyHandler()) ); by = urllib2.urlopen( 'http://packagecontrol.io/' + pf.replace(' ', '%20')).read(); dh = hashlib.sha256(by).hexdigest(); open( os.path.join( ipp, pf), 'wb' ).write(by) if dh == h else None; print('Error validating download (got %s instead of %s), please try manual install' % (dh, h) if dh != h else 'Please restart Sublime Text to finish installation')
Видишь после него Please restart Sublime Text to finish installation - заебись. Перезапускаешь сублимтекст и следуешь дальнейшим инструкциям с линка, который кинул.
Допустим, ищу я ресурсы items с некоторыми id. Мне дико не нравится дефолтный рутинг. Ящитаю, что урл поиска не должен быть вида /items/show/1,2,3. Мне хотелось бы что-то в духе /items?ids=1,2,3, а то пацаны не поймут.
Смотри, бро. Если у тебя пути /items/show и items/show?ids=1 должны вести на один и тот же экшн в контроллере то проблем нету. Ты можешь в контроллере все разрулить. На уровне роутинга это делается через constraints.
http://pastebin.com/M1Hk4kwr
Но вообще не выебывайся и делай по гайдам, пока нету реально нужды от них отступать.
1. Довольно тормозной
2. Замудренная, на первый да и на второй, чего уж там взгляд, объектная модель
3. Некоторые очевидные для других языков вещи тупо переназваны и должны быть заново "изучены"
Больше минусов вспомнить не могу.
> 1. Довольно тормозной
Нет ни у кого из ПЫХОПЛЕЯДЫ каких либо особых скоростей, всё в пределах погрешности.
2. очень простая и понятная ОМ
3. это ты про всякие inject, select и т.д.? если так, то проблемы возникают только у тех, кто знаком с фп, новичку однохуйственно.
Еще можно добавить
4. дырявые стандартные либы (не могли как в ноде сделать)
5. хуевая поддержка гуи либ
6. методы не first-class без костылей
7. and/or против &&//||
8. комьюнити (тут не язык правда виноват)
ну он реально клевый. Синтаксис то посмотри да с пхп сравни. Вакансий только меньше. Но зато клевый. Реально.701210
комьюнити-то заебись, если на английском. На русском у всего говно, а не комьюнити
Да какой заебись. Пидоры, феминисты и прочее бугуртящее во имя справедливости говно и есть 95% комьюнити руби. Какие-то высеры про равенство, хуе-мое, руби для детей, railsgirls, руби для инвалидов, руби для одноклеточных. Нахуй мне это?! Вместо работы над языком/платформой хуйней страдают.
> Какие-то высеры про равенство, хуе-мое, руби для детей, railsgirls, руби для инвалидов, руби для одноклеточных.
чет в голос
Мимокрок.
> руби для одноклеточных
Вышел новый положняк - теперь руби только для многоклеточных rails остается для одноклеточных, разумеется
>9. Я не могу в английский, что делать, анон?
Идти учить английский, без него тут делать нечего.
как будто он блять 2 дня учится
Потому что в руби and/or не замена &&/||
очередной перлизм
>>412513
Я имел в виду, что можно было сделать stdlib минимальной, а не то, что либы должны быть без дыр совсем.
>Почему мне должно быть не похуй кто там в каком-то комьюнити сидит
Где ты прочел что кто-то не должен писать из-за кого-то? Я всего лишь высказал то, что мне не нравится. Мне уже абсолютно похуй.
На прыщи переходи.
>как будто он блять 2 дня учится
Два месяца с книжками и выходные на хакатоне в европе/штатах = 50к рублев и английский у тебя есть какой-никакой. А вообще с детства надо язык долбить.
мимо-билингва-гейропа/сшп-студентота-кун
лан, со штатами перегнул, но поездку в Европу + книжку ты себе на 50к позволишь. А то и на ноут останется/выйграешь чего-нибудь. Или на 2 хакатона сгоняешь. На первом просто послушаешь, что носители и пиздаболы, вроде меня, говорят, а на втором сам выебывайся и пизди без остановки.
class Huy
def snyat_shtani(do_kuda)
puts "Снял штаны #{do_kuda}"
end
end
command = "snyat_shtani"
op = Huy.new
op.send(command, "до колен")
jQuery?
Есть таблица с некоторыми стобцами. Допустим, есть столбцы country и value. Мне нужно получить максимальное значение value для какой-либо country. Но не просто получить, а максимально быстро. country не уникальны и их могут быть миллионы, на них есть индексы, но value — уникальны. Помогите, пацаны. Я не знаю, как это сделать правильно, но мне правда нужно.
Не самый удачный тред, наверное, но я хотя бы рубиблядь. Надеюсь на помощь.
В смысле, я конечно, тупой хуй, но я вижу это так, что мне нужно сделать что-то вроде индекса для максимального значения. Да, я могу сделать индекс по столбцу country и существенно сократить количество переьираемых строк, но он всё ещё каждый раз будет перебирать кучу строк для нахождения значения, которое можно было бы находить только лишь при обновлении данных таблицы. Вот что я имею в виду. Я пытаюсь найти сам и разобраться. Не вру. Но пока дело стоит, потому что всё не по теме. В любом случае, я уверен, что подобный механизм есть в любой базе данных.
Ответьте на мой ответ блядь! У меня еще одна идея родилась: запустить долгоработающий процесс в бэкграунд и отрендерить страницу. Процесс хуярит результаты своей работы в базу данных. Ajax на странице обращается с контроллеру, который вытаскивает из базы данных результаты, отдает их в json например. Все это несложно вроде бы, кроме КАК ЗАХУЯРИТЬ ЕБАНЫЙ ФОНОВЫЙ ПРОЦЕСС В РЕЛЬСАХ???
Таблица имеет вид:
айди|профессия |айди_сотрудника
1 |программист| 13
2 |бухгалтер | 21
3 |программист| 19
Как это реализовать?
Есть 2 модели - пользователи и группы. Связаны между собой через вспомогательную таблицу методом :has_many_and_belongs_to.
В форме редактирования пользователя сделан выпадающий список со списком групп. При апдейте в консоли появляется
WARNING: Unpermitted params :group_id, хотя в парамсах юзера он указан. В итоге, обновляется все, кроме принадлежности к группе.
Модель пользователя user.rb
class User < ActiveRecord::Base
.
.
.
has_and_belongs_to_many :groups
.
.
.
end
Модель группы group.rb
class Group < ActiveRecord::Base
has_and_belongs_to_many :users
VALID_NAME_REGEX = /[a-zA-Z\u0410-\u044F+\-\+\\_]/
validates :name, presence: true, length: {maximum: 50}, format:{with: VALID_NAME_REGEX}, uniqueness: true
end
update и params в users_controller.rb
def edit
@user = User.find(params[:id])
end
def update
@user = User.find(params[:id])
@group = params[:groups=>[:group_id]]
if @group != nil && !Group.find_by_id(@group).nil?
@user.groups.push(@group)
end
if @user.update_attributes(user_params)
flash[:success] = 'Profile succesfully updated!'
redirect_to @user
else
render 'edit'
end
end
private
def user_params
params.require(:user).permit(:email, :password, {:groups=>[]})
end
Форма редактирования edit.html.erb
<%= form_for [:admin, @user], :html => {:multipart => true} do |f| %>
<%= render 'shared/error', object: f.object %>
.
.
.
<%= f.label :groups, 'Группа' %>
<%= f.fields_for :groups do |group| %>
<%= group.collection_select(:group_id, Group.all, :id, :name) %>
<% end %>
<%= f.submit 'Сохранить изменения', class: 'btn btn-success' %>
.
.
.
<% end %>
Есть 2 модели - пользователи и группы. Связаны между собой через вспомогательную таблицу методом :has_many_and_belongs_to.
В форме редактирования пользователя сделан выпадающий список со списком групп. При апдейте в консоли появляется
WARNING: Unpermitted params :group_id, хотя в парамсах юзера он указан. В итоге, обновляется все, кроме принадлежности к группе.
Модель пользователя user.rb
class User < ActiveRecord::Base
.
.
.
has_and_belongs_to_many :groups
.
.
.
end
Модель группы group.rb
class Group < ActiveRecord::Base
has_and_belongs_to_many :users
VALID_NAME_REGEX = /[a-zA-Z\u0410-\u044F+\-\+\\_]/
validates :name, presence: true, length: {maximum: 50}, format:{with: VALID_NAME_REGEX}, uniqueness: true
end
update и params в users_controller.rb
def edit
@user = User.find(params[:id])
end
def update
@user = User.find(params[:id])
@group = params[:groups=>[:group_id]]
if @group != nil && !Group.find_by_id(@group).nil?
@user.groups.push(@group)
end
if @user.update_attributes(user_params)
flash[:success] = 'Profile succesfully updated!'
redirect_to @user
else
render 'edit'
end
end
private
def user_params
params.require(:user).permit(:email, :password, {:groups=>[]})
end
Форма редактирования edit.html.erb
<%= form_for [:admin, @user], :html => {:multipart => true} do |f| %>
<%= render 'shared/error', object: f.object %>
.
.
.
<%= f.label :groups, 'Группа' %>
<%= f.fields_for :groups do |group| %>
<%= group.collection_select(:group_id, Group.all, :id, :name) %>
<% end %>
<%= f.submit 'Сохранить изменения', class: 'btn btn-success' %>
.
.
.
<% end %>
select count(table.профессия) from table group by table.профессия
Ускорило выполнение запроса в целых полтора раза до 0.6 секунды, но это все еще очень долго. Нет большой проблемы в том, чтобы добавить несколько строк логики и вручную обновлять максимальное значение при транзакциях, но мне хотелось бы сделать это средстави БД, если это возможно. За этим и приходил.
Алсо, количество записей в таблице тоже ~0.5 секунды считается, что несколько меня удивляет, так как я всегда почему-то был уверен, что вещи вроде этой обсчитываются при обновлении данных. Но тут меня спасает вторая таблица, где для каждой country всегда бережно обсчитываются transactions_count, а дальше мне нужно просто сумму столбца одним запросом взять.
Ты смотришь на то число, которое рельсы выдают? Похоже, что большую часть времени в запросе у тебя тратиться на оверхед от рельс. Попробуй посмотреть сколько времени будет уходить, если напрямую запрос делать.
Бро, у меня sequel без моделей. Я пробовал даже разные сложные запросы из выдачи гугла, но сути не меняет вообще. Я шокирован тем, как БД каждый раз считает количество записей. Да, я наверняка многого не понимаю обо всем этом и заслуженно чувствую себя тупым хуесосом, но уж такого я не ожидал и ожидать не мог.
у меня есть диапазон чисел, я их передаю в виде url вида example.com?range=300..400
собственно это норм если я сделаю так :
range = params[:range].split("..")
client .where(:range => range.first..range.last)
возможны ли SQL инъекции если я так напишу?
Это быдлокод, не делай так. Если это какие-то критерии, то тебе лучше иметь два параметра (вроде price_low и price_high). Если это что-то другое, то скорее всего, оно как-то ответственно за количество выводимых данных. В таком случае тебе лучше пересмотреть концепцию, потому что хацкер заставит твой сервер выдать миллион записей из БД и твоя ВПСка за три с половиной бакса захлебнется.
http://pastebin.com/s5dGSWY4
Проблема в том, что нет полей. А при получении элемента через xpath невозможно выставить его значение ;(
has_and_belongs_to_many :groups
при таком способе ты неправильно указываешь параметр для user_params.
должно быть не :groups => []
а
:group_ids => []
именно так. и не groupS_ids.
потому что когда идет сохранение массива айдишников Group, они пихаются в group_ids.
соответственно и поле в форме тоже надо исправить на :group_ids. Кстати странно что у тебя там селект. Селект выбирает какой то один объект. Подходящее по смыслу для has_and_belongs_to_many инпут формы - это массив чекбоксов.
Вообще использование Strong params совместно с has_and_belongs_to_many довольно сложная тема. Надо один раз обгуглиться и запомнить все эти соглашения по именам. http://edgeguides.rubyonrails.org/action_controller_overview.html#strong-parameters
https://www.youtube.com/watch?v=qObzgUfCl28
У инпата в твоей форме нет атрибута name. Такой инпат не обработает ни браузер, ни Mechanize. Если хочешь помощи, то давай ссылку на твою форму.
лойс
На пикче вопрос.
Как запустить проект то?
Гуглю нифига не понимаю. Говорят вроде обновить бандлер надо. rake не могу обновить.
Ну неужели на шиндовс нельзя запустить? что за сраный ibm437, не дает мне установить это срэйк.
Там скорее ебота из-за того, что соснулька в винде не понимает ютф-8 без пенка.
Ну руберойды, выручайте же, вы что тут илита, и поголовно на ваших маках и линуксах сидите?
Да полюбому на шиндовсах тут есть, как эту хуйню пробить?
Вот тут вроде решение могущие в ангельский помогите.
https://github.com/jimweirich/rake/issues/210
https://github.com/bundler/bundler/issues/2445
https://github.com/bundler/bundler/issues/2496
Ее можно автономно ставить от шиндовс? и переключаться между ними?
Никогда в жизни ни сидел на вашем линуксе.
да можно
Пересекаются как-то, или руби — исключительно веб? jRuby???
Не пересекаются.
Ставь в виртуалбоксе (и лучше xubuntu вместо федоры), сам так работаю уже два года, брат жив.
Спасибо друг, вот сейчас скачиваю виртуалбокс и ксубунту 14.04, а то я заебался с vmare и фелорой, вчера пол дня сидел, не мог настроить руби, теперь может дело быстрей пойдет. Может поделишься своим опытом? как грамотно работать с руби он рэйлс? текстовые редакторы? галочки может где нибудь поставить надо? голную сборку там?
Устанавливаю ксубунту, создал 8гб раздел в диске D, в меню выдал несколько пунктов"
1. Стереть диск и установить ксубунту
2.Вы можете изменять/создавать разделы самостоятельно, или выбрать срау несколько разделов
Что выбрать то чтоб данные на моем диске D не удалились?
В начале без опыта в линуксе будет не привычно, конечно, особенно учитываю, что у тебя плохо с английским. Из рекомендаций в начале поставь rvm и руби через него и разберись как пользоваться гемсетами. Еще очевидная рекомендация качать скилл английского, не обязательно для этого дропать руби, качай их параллельно. Я не знаю насколько у тебя с ним плохо, если можешь хотя бы с трудом читать сообщения на SO, то возьми, например, eloquent ruby и читай через боль, незнакомые слова заноси в anki.
Из редакторов советую sublime text 3 или atom. Саблайм популярней и я сам на нем сидел долго, но в итоге перешел на атом и не жалею.
>>414242
И почему же? Убунту давно уже дефолтный дистр линукса для десктопа. Большинство гайдов и вопрос на СО относящихся к руби которые он найдет будут подразумевать, что у него или мак или убунту. Ну а xfce просто хорошая замена, в меру минималистичная, замена unity.
>>414267
Ну и ладно, раз уж я все это написал, то все равно отправлю.
Спасибо конечно.
Но как же с эти руби муторно то, на виндоус не робит, всякие ошибки, вернусь обратно, к своему уютному html,css,php мирку, блять нахвалили этот фреймворк, что аж на свой сраный шиндовс не могу установить его.
Спермопроблемы никого здесь не волнуют. В каком-то смысле, это минимальный естественный отбор, не позволяющий срелнестатистическому проекту спускаться до уровня PHP.
Суть вот в чём. Попробуйте представить себе прыщемирок. У него нет границ, которые спермачи могут увидеть, зато есть границы которые они никогда не смогут преодолеть. И вот почему. Допустим, решила какая-нибудь типичная спермоблядь проникнуть в прыщемирок — не важно, будь то пубертатный школьник с истовой жаждой самоутверждения, или завхоз с экономией на бесплатном, или просто пресытившийся анальным гнётом и интересующийся не в меру хомячок; таки или иначе всех ждёт один и тот же печальный итог.
Когда типичная спермоблядь пытается, прельстившись радостями прышемирка, проникнуть в прыщемирок через «парадный вход», гордо задрав нос, её ожидает строгий досмотр, на котором моментально выявляется уровень знаний и умений убогого. В частности, выясняется во всех продробностях та самая противоестественная поза, в которую традиционно привыкла вставать спермоблядина, чтобы её начинал использовать хозяин, выясняется, что за душой у спермоблядины никаких знаний нет, кроме этих самых привычек, связанных с облегчением анального гнёта спермогосподина. И тут, поскольку вход-то «парадный», прямо на глазах тысяч обитателей прыщемирка наступает расправа. Древний и тщательно смазанный для анахронизма карательный механизм запускает свои циклопические манипуляторы прямо в анус спермоблядины и стремительно с треском и искрами разрывает его в клочья. Это одна из самых потешных вещей для всех прыщеблядков. Это то, что делает бессмысленными все прочие развлечения, то, что не сравнится по накалу страстей и силе впечатлений ни с чем. На спермоблядские крики слетается множество зевак. Жалкий опущенец кричит, обвиняет в случившимся кого угодно, но не себя, сетует и стенает о том, что прыщемирок не пригоден для жизни, что прыщеблядям, видимо, нравится перманентный разрыв ануса; всё, что угодно будет выкрикивать — лишь бы не признать собственную убогость и надёжность её определения и её очевидность в прыщемирке. Но прыщеблядям известна истина. Она проста. Тот самый надёжнейший анахронизм вычислил хроническую спермоблядь и точно поразил её. Это делает крики спермоблядыша ещё более смехотворными.
Суть вот в чём. Попробуйте представить себе прыщемирок. У него нет границ, которые спермачи могут увидеть, зато есть границы которые они никогда не смогут преодолеть. И вот почему. Допустим, решила какая-нибудь типичная спермоблядь проникнуть в прыщемирок — не важно, будь то пубертатный школьник с истовой жаждой самоутверждения, или завхоз с экономией на бесплатном, или просто пресытившийся анальным гнётом и интересующийся не в меру хомячок; таки или иначе всех ждёт один и тот же печальный итог.
Когда типичная спермоблядь пытается, прельстившись радостями прышемирка, проникнуть в прыщемирок через «парадный вход», гордо задрав нос, её ожидает строгий досмотр, на котором моментально выявляется уровень знаний и умений убогого. В частности, выясняется во всех продробностях та самая противоестественная поза, в которую традиционно привыкла вставать спермоблядина, чтобы её начинал использовать хозяин, выясняется, что за душой у спермоблядины никаких знаний нет, кроме этих самых привычек, связанных с облегчением анального гнёта спермогосподина. И тут, поскольку вход-то «парадный», прямо на глазах тысяч обитателей прыщемирка наступает расправа. Древний и тщательно смазанный для анахронизма карательный механизм запускает свои циклопические манипуляторы прямо в анус спермоблядины и стремительно с треском и искрами разрывает его в клочья. Это одна из самых потешных вещей для всех прыщеблядков. Это то, что делает бессмысленными все прочие развлечения, то, что не сравнится по накалу страстей и силе впечатлений ни с чем. На спермоблядские крики слетается множество зевак. Жалкий опущенец кричит, обвиняет в случившимся кого угодно, но не себя, сетует и стенает о том, что прыщемирок не пригоден для жизни, что прыщеблядям, видимо, нравится перманентный разрыв ануса; всё, что угодно будет выкрикивать — лишь бы не признать собственную убогость и надёжность её определения и её очевидность в прыщемирке. Но прыщеблядям известна истина. Она проста. Тот самый надёжнейший анахронизм вычислил хроническую спермоблядь и точно поразил её. Это делает крики спермоблядыша ещё более смехотворными.
GitHub, Twitter (не начинай кукарекать про переезд на JVM, если не готов спорить с пруфами и принимать мои аргументы с пруфами же; в любом случае, взлетел на RoR, и есть мнения, что в некоторой степени и благодаря RoR), тысячи хипсторких сайтов и некоторая часть наших правительственных сайтов, насколько я знаю (время от времени мелькают вакансии). Но это всё не так важно. На PHP больше годноты сделано, конечно, поэтому PHP лучше, мы просто все вместе собрались и сделали тред неосиляторов, так что не обижай нас, пожалуйста.
на руби же пишут только китайцы и прочие виабу
или вы типа нитакие как все?
пидоры что ли?
>так что не обижай нас, пожалуйста.
Хорошо не буду.
GitHub годнота, вплане материала различных исходников, а так хипсторское артхаусное говнецо. Да да сучечка, свитер переехал, когда осознал что на этом хипсторском фреймворчике, далеко не уедешь. И какие тебе пруфы? на хабре давно уже обсосали этот переезд свитера с вашего хуюби, для великовозрастных школьничков, с низким порогом вхождения в мир ПОГРОМирования
Но ты же не обижаешься пожалуйста, добра тебе:)
но ведь хабр сам-то давно обоссан
А на пыхопараше значит далеко уедешь, раз вкудахты с фейсбуками на нём?
можешь дуалбутить
Уж если ты портишь тред хабротой, то держи, диванный: http://geektimes.ru/post/123778/#comment_4066932
Есть множество разных мнений насчёт всего. Фейсбук написан без использования ООП, «Вконтакте» тоже открыто говорят, что их божественный компилятор PHP, написанный олимпиадникам и отличниками, не умеет в ООП, потому что они сами не используют его нигд . Вот где получается скорост . Хочешь скорости — сбрасывай абстракции, закатывай рукава и умножай битовыми сдвигами. Правда, к тому времени, как наконец-то сделаешь оптимальную конкатенацию строк, внуки Цукерберга наплодят сразу десять прямых конкурентов твоего стартапа и заберут всю твою потенциальную аудитори . О чем ты тут споришь — я не зна . Приглашаю мочератора посидеть в треде и посмотреть, чтобы его не скатывали в бесконечный срач.
Прямо сейчас начинай учить английский, это самый фундаментальный скилл, как арифметика в математике.
Братишка ну что ты тут фаллорефлеметирушеь? (фаллос+рефлекс+метрика) мне глубоко пофиг на эти ваши гандактики да факбуки, я же тебе о вашем хипсторском хуюби констатировал, что он только вам тут уютно всрался, великовозрастным низко-пороговым погромистам.
Но ты годен братишка, видно что радеешь, копротивляешься, это достойно, но как в Библии: упорствo невежд убьет их, не обижайся, и спокойной ночи, добра тебе братишка:)
Всё было хорошо, но тут он раз такой
> Надёжность программ со статической типизацией это просто миф
и обосрался.
> 1. C чего мне начать, чтобы стать рубистом?
> Отличным началом будет Eloquent Ruby
Скачал, читаю:
> Who Is This Book For?
> This book is for you if you have a basic understanding of Ruby but feel that you...
> ave a basic understanding
а с чего начать если даже понятия не то что в Руби, а и в кодерстве нет?
Это уже его точка зрения, но он начал её как общепринятый факт констатировать. У всех свои таракан .
смотри что нагуглил
Скачиваешь все, что советуют, смотришь оглавление в каждой книге, листаешь, выбираешь то, что понравится. Есть на руби для абсолютных ньюфагов:
http://marine.rutgers.edu/~nstrands/Learn%20to%20Program,%202nd%20Edition.pdf
Но я бы тебе не советовал начинать с руби, потому что его единтсвенное применение - это рельсы, а в рельсах предполагается, что ты уже опытная веб-макака. В рельсы обычно перекатываются после пары лет пхп. С пхп и начни, если интересует веб.
я думал упарывать руби, потом перекатыватся на java, с плавным переходом на приложения на ведро и айось.
Ну погугли Ruby On Rails и PHP. А как ты вообще про руби узнал и почему хочешь на нем писать?
> как узнал и почему хочешь
> ньюфаг тред #73
> B: Хочу стать программистом, какой язык учить?
> O: Aнглийский + Ruby/Python
я просто на днях осознал что мне уже дохуя лет (овер 22), а я хуй простой, и мое ингенерское образование в пизду, и склад ума у меня кодерский. за ответом пошел на родные двачи. Название Ruby понравилось больше чем Python, лол.
Что у тебя на скрине? Лучше бы вьюху показал.
http://tryruby.com/
Потом Agile web development with Rails + пара месяцев практики.
Я так въехал, сейчас живу в Тае как король.
Короче, если ты полный ньюфаг, то во-первых, тебе надо изучать английский. Если можешь читать техническую литературу, пропускаешь этот пункт. Не надо скачивать какие-то учебники по английскому или записываться на курсы. Можешь записаться на курсы, если ты полный 0 (например, учил немецкий в школе). А так, чтобы изучить язык, нужно смотреть какие-нибудь сериалы в оригинале с субтитрами. Когда встречаешь неизвестное слово, смотришь в словаре. То же самое с книгами. Не отлынивай, сериалы и фильмы смотри только в оригинале, и твой лексикон будет расшириться охуительными темпами. Техническую литературу на русском читать нельзя, за такое в приличном обществе ссут на ебало.
Теперь, когда знаешь английский, тебе надо научиться гуглить, чтоб не заходить в /зк/ с тупыми вопросами. Уметь гуглить и вообще искать информацию - это самый важный скилл, я не преувеличиваю.
Ты уже знаешь английский, можешь загуглить непонятный момент и читать книги в оригинале, пусть даже как даун со словарем и по 1 странице за 15 минут. Начинай изучать самые основы: переменные, условия и т.д. Язык абсолютно неважен. Не беспокойся, что ты потратишь время на какой-нибудь язык типа Scheme, а потом никогда в жизни не будешь на нем писать. Циклы, условия, функции и прочее есть абсолютно в любом языке, тебе главное понять принцип. Выбираешь любую книгу из тех, что тебе насоветовали в этом треде. В принципе, можно и на руби писать, но Rails трогать не стоит, обосрешься.
Дальше тебе предстоит выбор в зависимости от твоих интересов:
1) Если ты дохуя эстет и тебе нравится работать с каими-то визуальными вещами, можешь изучать html, css и js. В /wrk/ найдешь тред верстки, там есть подробный гайд.
2) Если ты задался целью максимально быстро начать зарабатывать деньги, делаешь то же самое.
3) Если ты тупой и не можешь в математику и всякие абстракции, опять возвращайся к пункту (1)
4) Если нравятся игры, можешь научиться делать браузерки на js. Для 2D игр тебе надо будет знать хотя бы школьную геометрию, типа синусов, косинусов и прочей хуйни. Для 3D тебе нужны будут всякие матрицы и аналитическая геометрия, но их тоже осилит даже даун.
5) Если хочешь фундаментальных знаний, то в /зк/ уже есть куча гайдов. Вот один из них http://pastebin.com/nwYaB1XR. Это что-то типа введения в computer science.
Короче, если ты полный ньюфаг, то во-первых, тебе надо изучать английский. Если можешь читать техническую литературу, пропускаешь этот пункт. Не надо скачивать какие-то учебники по английскому или записываться на курсы. Можешь записаться на курсы, если ты полный 0 (например, учил немецкий в школе). А так, чтобы изучить язык, нужно смотреть какие-нибудь сериалы в оригинале с субтитрами. Когда встречаешь неизвестное слово, смотришь в словаре. То же самое с книгами. Не отлынивай, сериалы и фильмы смотри только в оригинале, и твой лексикон будет расшириться охуительными темпами. Техническую литературу на русском читать нельзя, за такое в приличном обществе ссут на ебало.
Теперь, когда знаешь английский, тебе надо научиться гуглить, чтоб не заходить в /зк/ с тупыми вопросами. Уметь гуглить и вообще искать информацию - это самый важный скилл, я не преувеличиваю.
Ты уже знаешь английский, можешь загуглить непонятный момент и читать книги в оригинале, пусть даже как даун со словарем и по 1 странице за 15 минут. Начинай изучать самые основы: переменные, условия и т.д. Язык абсолютно неважен. Не беспокойся, что ты потратишь время на какой-нибудь язык типа Scheme, а потом никогда в жизни не будешь на нем писать. Циклы, условия, функции и прочее есть абсолютно в любом языке, тебе главное понять принцип. Выбираешь любую книгу из тех, что тебе насоветовали в этом треде. В принципе, можно и на руби писать, но Rails трогать не стоит, обосрешься.
Дальше тебе предстоит выбор в зависимости от твоих интересов:
1) Если ты дохуя эстет и тебе нравится работать с каими-то визуальными вещами, можешь изучать html, css и js. В /wrk/ найдешь тред верстки, там есть подробный гайд.
2) Если ты задался целью максимально быстро начать зарабатывать деньги, делаешь то же самое.
3) Если ты тупой и не можешь в математику и всякие абстракции, опять возвращайся к пункту (1)
4) Если нравятся игры, можешь научиться делать браузерки на js. Для 2D игр тебе надо будет знать хотя бы школьную геометрию, типа синусов, косинусов и прочей хуйни. Для 3D тебе нужны будут всякие матрицы и аналитическая геометрия, но их тоже осилит даже даун.
5) Если хочешь фундаментальных знаний, то в /зк/ уже есть куча гайдов. Вот один из них http://pastebin.com/nwYaB1XR. Это что-то типа введения в computer science.
> Техническую литературу на русском читать нельзя, за такое в приличном обществе ссут на ебало.
11/10
английский знаю прилично, учил какраз-таки по фильмах/сериалах.
я хочу в кодерство, без дизайна, ибо рисовать нихуя не умею. если б делал игры, то на пополам с дизайнерами.
хочу вот просто когда читаю что куда-то нужен "програмист со знанием языка Х", понимать что я подхожу. вот. может у меня слишком все пока по нубски и росплывчато в восприятии, но буду по-немногу упарывать. ещё до февраля погуглю, сделаю себе базу с чего начинать, и ныряю.
>>414680
давай свою кулстори. как попал, с чего начал?
>хочу вот просто когда читаю что куда-то нужен "програмист со знанием языка Х", понимать что я подхожу.
Ну тогда 5 пункт в гайде. Главное не жди до февраля. Прокрастинации легко поддаться, когда самообучаешься, потому что в отличие от универа нет дедлайнов.
я до февраля загружен своими ингинерскими делами по работе. и таки да, я прокрастинирующее хуйло, и такие вспышки у меня уже были с "УЧУ СОЛИДВОРКС / УЧУ ТЕХНИЧЕСКИЙ АНГЛИЙСКИЙ / УЧУ ПОЛЬСКИЙ" и все затухало на второй-третьей неделе. надеюсь тут так-же не будет.
напиши интернет магазин. в 60% случаев вебпарашаработа связана с онлайн коммерцией. Алсо поизучай требования к вакансиям.
Потом задрочи javascript и потом какой нибудь ангуляр. Везде требуют
Окей, создам таки интернет магазин.
>Потом задрочи javascript и потом какой нибудь ангуляр. Везде требуют
Это уже есть, полтора года фронт-енда за плечами.
Начал с пхп, где-то полгода возился. Потом нашёл тред одеск-куна в воркаче и решил познакомиться с руби поближе.
This uses the common but potentially confusing construction
if (user_id = session[:user_id])
Despite appearances, this is not a comparison (which would use double-equals ==), but rather is an assignment. If you were to read it in words, you wouldn’t say “If user id equals session of user id…”, but rather something like “If session of user id exists (while setting user id to session of user id)…”
I generally use the convention of putting such assignments in parentheses, which is a visual reminder that it’s not a comparison.
Это что, на самом деле так приянто делать? Я бы за такое убивал нахуй.
Ты можешь рассосать логику до вида
if session.include?(:user_id)
user_id = session[:user_id]
...
else
...
end
Но зачем так жить? Конструкции вроде твоей привычны и понятны, наверное, всем, кто писал что-то сложнее бложика и никакой эзотерики здесь тоже нет. Такие дела.
Я могу точно сказать что нужен jbuilder. Охуенный гем
вы все ещё юзаете jbuilder? нюхните-ка active_model_serializers!
> 4. Можно ли писать на руби мобильное ПО?
> Да. Для iOS есть RubyMotion промышленного качества
> промышленного качества
Кого вы пытаетесь обмануть?
> Для WinPhone традиционно ничего нет, но его ценителям не привыкать.
Паста с 2012 осталась?
Есть rhodes. Но никто не обновлялся оп.
>>414995
У меня есть несколько типов отображения инфы, но в контроллере всегда в переменную @companies записывается результат поиска.
Иногда эти результаты показываются таблицей, иногда графиком (тогда нужен джейсон), иногда другими хитровыебанными штуками.
Сделал через хелпер:
[code]
def graph_json
json = @companies.as_json(only: [:name, :employees, :growth, :logo], methods: [:logo]).each do |company|
company['x'] = company['employees']
company['y'] = company['growth']
end.to_json
sanitize json
end[/code]
В соответствующей вьшке вызываю его, когда вставляю данные в хайчартс.
Есть модель Zalupa с атрибутами size,color,form
Делаем:
@zalupa = Zalupa.find(1)
@zalupa.size = big
@zalupa.color = sizaya
@zalupa.form = podosinovik
@zalupa.save
Вот как эту хуйню
@zalupa.size = big
@zalupa.color = sizaya
@zalupa.form = podosinovik
упаковать в одну строчку?
Почитай лучше это и выбери сам http://www.davidverhasselt.com/set-attributes-in-activerecord/
Э, алё! Ты вообще-то в руби-треде.
Просто невероятная несправедливость: как у такого прекрасного языка получилось такое уебищное сообщество. Думаю, по большей части виноваты рельсы.
Ковыряю рубирельсы уже долго, понаписал скриптиков, блогов, имиджборд. Напроходил туториалов, прочитал пару книжек.
А потом мне предлагают написать скрипт, который переводит арабские цифры в римские и я адово сосу хуи, сижу и туплю в монитор.
Может выпилиться? Сейчас читаю The Well-Grounded Rubyist, думаю подтянуть пробелы, потренироваться. Но печёт люто, чому я такой тупой?
>переводит арабские цифры в римские
Это от того, что ты Dive into Python не читал, хуесосина. Там эта задача разжевана.
Решение задачи я понимаю легко. Даже теперь вот воспроизвести могу сам. Но изначально ничего придумать не мог.
Хочу конечно, иначе не сидел бы ночами и не дрочил по второму кругу всякие базовые упражнения. После Рубиста, буду читать Метапрограмминг, наверное. Надеюсь, шанс всё-таки есть.
Ну и посторонний вопрос: а если на работе платят много денег за рельсобложики и всех всё устраивает, то надо ли быть программистом? Это не про меня сейчас, просто интересно.
Ты хоть что-нибудь по структурам данных и алгоритмам почитай.
Блять, я даже не знал, что с программистами на языках нынче все настолько плохо.
Есть модель категорий товаров, каждая категория вместо безобразного числового id переписывается красивым ЧПУ по названию категории, ЧПУ сохраняется в поле slug, значения уникальны для каждой категории.
class Category < ActiveRecord::Base
has_many :goods
before_save 'slug'
.................
def slug
self.slug = name.downcase.gsub(" ", "-")
end
def to_param
slug
end
end
Когда я создаю товар в категории, консоль начинает срать ошибкой, что не может найти категорию
Собственно, создание товара из goods_controller
def create
@category = Category.find_by_slug!(:params[:id])
@good = @category.goods.build(goods_params)
respond_to do |format|
if @good.save
format.html{redirect_to @good}
format.js{}
else
format.html{render action: 'new'}
format.js{}
format.json{render json: @good.errors.full_messages, status: :unprocessable_entity}
end
end
end
Сама ошибка
Parameters: {"utf8"=>"✓", "good"=>{"name"=>"Тест", "price"=>"100"}, "commit"=>"Создать", "category_id"=>"test"}
TypeError (no implicit conversion of Symbol into Integer):
Я понял, что рельса пытается найти категорию по id, но вместо этого получает текстовую ссылку, хотя я явно указываю, как ее искать через Category.find_by_slug!(:params[:id]). Как ее заставить искать именно по полю slug, а не id?
Есть модель категорий товаров, каждая категория вместо безобразного числового id переписывается красивым ЧПУ по названию категории, ЧПУ сохраняется в поле slug, значения уникальны для каждой категории.
class Category < ActiveRecord::Base
has_many :goods
before_save 'slug'
.................
def slug
self.slug = name.downcase.gsub(" ", "-")
end
def to_param
slug
end
end
Когда я создаю товар в категории, консоль начинает срать ошибкой, что не может найти категорию
Собственно, создание товара из goods_controller
def create
@category = Category.find_by_slug!(:params[:id])
@good = @category.goods.build(goods_params)
respond_to do |format|
if @good.save
format.html{redirect_to @good}
format.js{}
else
format.html{render action: 'new'}
format.js{}
format.json{render json: @good.errors.full_messages, status: :unprocessable_entity}
end
end
end
Сама ошибка
Parameters: {"utf8"=>"✓", "good"=>{"name"=>"Тест", "price"=>"100"}, "commit"=>"Создать", "category_id"=>"test"}
TypeError (no implicit conversion of Symbol into Integer):
Я понял, что рельса пытается найти категорию по id, но вместо этого получает текстовую ссылку, хотя я явно указываю, как ее искать через Category.find_by_slug!(:params[:id]). Как ее заставить искать именно по полю slug, а не id?
Да ладно, эти ребята просто на бордах пересидели, регулярно на политачике обитают кстати, да и на ленте ракуют.
Еще повздыхай что программисты на языках не умеют в ring 0 и всякие int 22h. Зачем оператору экскаватора знать какой коленвал вертит радиальную шестерню на восьмом цилиндре? Мм, уеба? Зачем сверхвысокоуровневому господину вообще подозревать о разнице между стеком и кучей?
> Зачем сверхвысокоуровневому господину вообще подозревать о разнице между
Согласен, нахуй не сдалось.
> стеком и кучей
А вот это обязательно, иначе код сверхуровневого господина будет как-то странно тормозить на хелловорлдах.
Хорошо шел, но со стек/кучей обосрался.
бамп ранд пикчей
Объясните ньюфагу, где я обосрался? Обрыл весь стак оверфлоу, теперь иду к вам.
Вот код http://pastebin.com/JhLXJPFp
<%= link_to "Удалить тред", root_path, method: :delete %>
А должно быть
<%= link_to "Удалить тред", theme, method: :delete %>
undefined local variable or method `theme' for #<#<Class:0x60f9450>:0x2c8f3e0>
Вот такое вот вылазит.
Тогда не theme, а что ты там удаляешь. thread попробуй. Или покажи весь код, так проще ориентироваться.
Спасибо! Как же я не смог догадаться, это кошмар. А ведь уже почти третью неделю учу, правда кода пишу очень мало, в основном читаю.
Спешите видеть, байтоеб в РУБИ треде! Срсли, не понимаю суть байтоебства в высокоуровневом языке для фана.
Затем рендерю ее в папке themes > show.erb
И управление этой формой передается другому контроллеру. В итоге чтобы все работало, нужно код для обоих контроллеров держать в одном, а другой пустует. Что за хуйня?
>В итоге чтобы все работало, нужно код для обоих контроллеров держать в одном, а другой пустует
шта? я нихуя не понял. покажи код.
Поясните, почему хвалёный рубиниус, который БЫСТРЫЙ И РАСПАРАЛЛЕЛЕНЫЙ, С LLVM И JIT КОМПИЛЯТОРОМ, всасывает в пять раз на таком синтетическом тесте?
Да это старая хуета. Погугли rubinius is slow, наткнешься на оправдания одного из разрабов в хакерньюс, мол они оптимизируют код на руби целиком, а не какой-то конкретный метод.
Хуета правда?
Дайте хороших советов, пожалуйста.
Руби если нет: https://www.ruby-lang.org/en/documentation/installation/
Потом: gem install rails
Уже. Такой вопрос теперь. Не могу в мозгу нормально спроектировать все эти belongs_to и прочие связи.
Спасибо.
В чем может быть проблема?
Я передумал спрашивать. Просто у меня путаница во всех этих belongs_to, add_xyu_to_users и прочих ассоциациях в моделях. Криво получается. В итоге так наговнокодил, что контроллер пытается вызвать метод индекс у вьюхи, которая родная для другого контроллера, и по идее она должна ее обрабатывать, а вот хуй. Щас буду с ноля переписывать все, а то чую где то в корне я ошибку допустил критичную.
https://gist.github.com/fnichol/867550
А вообще перекатывайся в прыщебляди, на сперме не придется много поебаться с различными гемами, которые на сях написаны.
- Низкий порог входа (никогда ни с чем подобным не работал и хочу начать с простого)
- Легкая интеграция с рельсами
- Фунционал на уровне: следить за кнопкой, делать ее неактивной при определенных условиях, скрывать блок, если выбран чекбокс и так далее.
Мои главные цели это рефакторинг спагетти-кода на жквери и более плотное знакомство с миром js.
Нет, программисты на Руби больше получают!
чтобы я не делал, не помогает.
Конечно, он же базу свою выкладывать не будет на гитхаб. Сам сделай.
Что делать? Помоги, пожалуйста.
<% unless @post.user.nil? %>
<%= @post.user.name %>
<% end %>
ну или просто во вьюхе edit
<%= @post.user.name %>
Короче, даже небо, даже аллах против того, чтобы я становился рубистом. Очень грустно. Наверное я просто не достоин того, чтобы стать частью такого прекрасного комьюнити, как рубисты.
Блять, даже капча сломалась!
лол, просто на винде тяжело комфортно с рельсами работать. Попробуй прыщи на дуалбут, если не хочешь прощаться с виндой.
Сейчас так: http://pastebin.com/ciKp2WcK
Как сделать лучше, без повторения .each?
collection.each до тега tr запустить один раз и внутри уже объявлять tr th и т.д., не?
Нарисует для каждого объекта в коллекции отдельную строчку. Смотри пикчу, мне нужно, чтобы объекты были в разных колонках.
На рубиджобс.
линукс
ЖМУ-слэш-пинус
Суп, рубаны, я из JS тредика. Поясните, на чем вы правите код этого божественного языка?
Сажица приклеилась.
Код языка мы не правим. Мы правим программы написаные на языке в IntelliJ Idea/RubyMine.
Для меня операционная систем не принципиальна. Просто никогда не имел дела с linux-based системами и Mac OS.
Кстати, можете объяснить, почему труъ программисты предпочитают именно их, а не Шиндовс?
> почему труъ программисты предпочитают именно их, а не Шиндовс
ЧЕЛОВЕЧЕСКИЙ терминал, менеджеры пакетов, реальное отсутствие необходимости устанавливать мокрописьки (по мокропиське на каждую задачу), разграничение прав пользователей, конфиги, АЛЬТЕРНАТИВЫ, штабильность, безопасность, дружелюбность к разработчикам, сообщество, отсутствие ошибок 0x07febad3, прозрачность работы — да бля, ебанешься вспоминать все, чего нет у спермы или есть только в спермоидеологическом смехотворном исполнении. Все швабодолюбы когда-то с прошивки для вирусов переползали. Уверен, что если не все, то многие не могли сразу понять, какие профиты они получают. Но если спросить их, почему не вернутся обратно, то лучше ответ записывать на какой-нибудь емкий цифровой носитель, ибо в голове всего не удержишь.
> разграничение прав пользователей
> безопасность
Айрорудо. Посоны из https://n0l.ch/c/res/2142.html ссут на тебя.
Охуенный тред! Читал и переживал, как будто это мой тред. Все в лучших традициях: годное начало, спокойное обсуждение, а потом говно, моча, пидорасы. В общем, я бы и сам там всех обоссал.
Чувствуешь себя чотким посаном, набирая адские комбинации клавиш для ускорения редактирования текста на 0,315%.
И копировать/вставлять? Быстро перемещаться по экрану? Ну разве что с костылями. Такого удобства, как в виме, я ещё нигде не встречал.
Чем в емаксе перемещаться? Так чтобы сразу в нужное место попадать. В идеале по префиксам нужного слова. Пробовал ace-jump, но уж очень он непредсказуемый.
емакс фанбой
Главное, что не шиндовс, на маке и линуксе одинаково отлично.
Да как ты узнал то!
ruby
ЯННП
Вынести метод в модуль.
Интересует именно в контексте совместимости и удобства в работе с Rails, Photoshop и прочим софтом для web-разработкинга.
На винде будут проблемы с рельсами, короче не рекомендуется. Либо садишся на линукс/мак, либо никак, будешь каждые 5 минут гуглить почему у всех заработало, а у тебя нет.
Ну я на андрюше сижу, не увидел про убунту, прочитал про фотошоп, подумал про сперму.
ну так наоборот, охуенно им. получают в бачинских, потом как короли
Ubuntu/Debian, под них больше всего готовых ответов на Stackoverflow.
И куда переходить после всего Path ror?
Ну вот я нагуглил тему с Server Side Events и ActionController::Live. Все это очень круто и прекрасно, но как передать этому контроллеру событие о добавлении новой записи? на after_save из модели эта хуита не реагирует.
а after_create?
В MRI GIL, процессы спавнить каждый раз слишком дорого, плюс возможность в последствие без проблем вынести воркеры на отдельный сервер/пулл серверов.
>без 2 лет тебе делать нечего в профессии
Так и есть. Джуниоров полно, скажи спасибо всяким gSchool и Metis.
Помню, летом анон рассказывал в верстка треде, что он выучил руби и нашел работу на какой-то анонимной бирже (знаю, что звучит странно). Суть в том, что там, по-моему, не по резюме или опыту работы оценивают, а по тому, как ты пройдешь задание.
Может этот анон сейчас среди нас?
А когда именно, летом? Я тоже отписывал в верстка треде, что нашел работу и все такое, только не на бирже.
В конце лета. В августе, наверное.
Человек писал, что верстка тред его смотривировал начать учить программирование. И вот теперь он нашел работу.
Потом его попросили запилить кулстори и он рассказал, что где-то в июне-июле начал руби (он написал точную дату, так как посмотрел, когда создал папку с RoR на компе, но я эту дату не запомнил).
Ну а про биржу, возможно, я что-то перепутал. Но сайт, где вся эта система поиска работодателей программистами и программистов работодателями, действительно был, так как я его находил.
как бы этот сайт/биржу найти?
Сразу возникло несколько вопросов, с которыми вы, надеюсь, поможете.
1) Как оформить инпуты? Вероятнее всего, будет 2 инпута на строчке (name и value) и потенциально бесконечное количество строчек. Можно ли сразу сделать таблицу, как в экселе?
2) Как хранить данные? hstore? Какие ещё варианты? Чарты 100% будет строить Highcharts, так что было бы полезно сразу сохранять json.
Последнее хорошая штука, только я не понял почему спавнить процессы или треды дороже чем иметь воркер из-за гила, там же CoW (память шарится) и задачи эти почти всегда io-bound.
ЕБАННОЕ ГОВНО СРАНОЕ КОГДА ГЕМЫ НАЧНУТ СТАВИТЬСЯ БЕЗ ЁБАННЫХ ОШИБОК СУКА ЗАЕБАЛ ЦИРК С ВЕРСИЯМИ КОГДА БУДУТ ЗАПИЛИНЫ ЕБУЧИЕ ЗАВИСИМОСТИ СУКА ЁПТА БЛДЖАД ПИЗДЕЦ КРИВОЕ ГОВНО НАХУЙ
Подожди, не злись. Здесь же все говорят, что нужно Linux/Mac использовать. На них все должно легко ставится.
Ну и храни в постгресовском json.
Сделал меня грустить
bundle exec jekyll serve
Треди спавнить не дороже, про дороже я говорил только для процессов, а по тредам, ведь не будешь же ты решать для каждой задачи io-bound она или нет и использовать разные механизмы в зависимости от этого. А на счет спавна процессов, форкаться из рандомного места в коде, моветон, как по мне, да и много лишней работы, подключаться заново к базе и прочим ресурсам, убеждаться родителем, если он решит завершится, что нету работающих детей и тд. А спавнить процесс с нуля, который наверняка будет грузить рельсы, дорого.
Нет, честность мне не помогла. Но я не украха, может поэтому не хотели смотреть.
там одни украинские вакансии, хули толку с сервиса.
Залил исходники своей приложухи на гитхаб, потом решил сделать бэкап папки (зачем-то).
Последовательность действий была такая:
git clone ... myapp_some_shit
cp -r myapp/ myapp_some_shit
# add, commit and push
mv myapp myapp_backup
mv myapp_some_shit myapp
Так вот теперь самое интересное: "ralis server" подхватывает правильную базу, а "rails console" ту, которая в бэкапе.
Сейчас сделал
mv myapp_backup backup/myapp_backup
Он всё равно её ловит
ActiveRecord::Base.connection в консоли выводит кучу говна и последней строчкой
:database => /home/anon/backup/myapp_backup/db/development.sqlite3
Что это за магия, и как пофиксить?
Рельсы четвёртые. Убунта 14.04.
/home/anon/backup/myapp_backup/config/application
mv myapp myapp2
и вроде всё нормально. Но это же костыль дикий.
Вобщем буду благодарен если кто-нибудь объяснит что происходит.
Это нихуя не бекап, а хуй пойми что.
># add, commit and push
Вот это еще нахуя? Не легче ли быдло остановится после гит клон?
s/быдло/было
>Это нихуя не бекап, а хуй пойми что.
Знаю.
>Вот это еще нахуя?
Всмысле нахуя? Я только создал репозиторий на тот момент.
Ну шобы моки-хуеки и прочее, а то на тачке с дженкинсом не стоят дрова для подключения к ораклу.
Если используется орокло специфика - то никак, в противном случае можно попробовать заменить базу на sqlite
Т.е. я установил атом, скачал language-ruby, закинул в папку packages (хз, потом в settings увидел, что вроде там все языки уже установлены были). В настройках выбрал ruby и нажал open in atom, справа появилась древовидная структура этого пакета. Но синтаксис не подсвечивает. Этот пакет не предусматривает этого или я не разобрался? Как вообще посоветуете настроить его для ruby если я совсем новичок?
> я совсем новичок?
Да. Я не понял зачем ты скачивал (ты zip репозитория что ли скачал, лол) и закидывал пакет сам, если атом это умеет делать из своего интерфейса, но поддержка руби, в том числе и подсветка, в нем сразу установлены в любом случае. Для того что бы работала подсветка или открой файл с расширением rb или выбери тип файла руками в правом нижнем углу.
Спасибо. Я обнаружил, что все установлено, когда закинул уже. Сам понял, что это лишнее было.
для совсем нубов норм, если есть опыт в других яп то говно, да.
Да, rails девелопер нынче не full-stack если не знает js дальше rails-jquery.
Ну вроде как к тому всё и идёт. Я же не утверждал что за пыхой или джангой будущее.
Я хотел про другое поговорить, по факту бекенд превращается в прослойку межу базой и клиентом, которая отдаёт json/xml/yaml
Возникает вопрос, есть ли преимущества у такой прослойки по сравнению со всей этой новомодной асинхронной хуергой?
Эрланг не для веба. У него нет удобств для веб-программирования, а все его бенефиты в вебе не особо ценны, если это не йоба-хайлод какой-нибудь, но тогда это уже другая история.
Веб бекенды ждёт тотальное пожирание ноджеесами, а чуть позже каким нибудь гоу.
>>419256
Смотря к чему бекенд, если тайпикал веб, то серверсайд всегда был прослойкой, тут ничего удивительного, особой разницы что сделать, выплюнуть данные в джсоне, в csv, или упаковать их во вьюху (написанную фронтендщиком) нет.
>амбер, ангуляр, бекбон и прочий нокаут
минимум плюсов, максимум неудобства по сравнению с обычными вью
ну разве что react норм для мелкой интерактивной хуйни
по моему не стоит заморачек, если не делаешь онлайн иде какое-нибудь
Неужели совсем без радужное и бесперспективное это дело?
5-10 лет и даже больше будет на плаву, на самом деле надуманная проблема, через 2-3 года активного макакинга тебе уже становится похуй на чем писать - и можно с легкостью использовать другую технологию
>Веб бекенды ждёт тотальное пожирание ноджеесами, а чуть позже каким нибудь гоу.
Они никогда не смогут в такую же экспрессивную дсл как ар, особенно гоу. Elixir мог бы мне кажется, там динамика, метапрограмминг, синтаксис руби, erlang vm, но мало пользователей.
Спасибо, утешил. Пойду дальше твиттер учебный писать.
С жс отдельная история, мне интересно, нахуй нужен жс если такой же ебучий колбечный ад можно устроить в любом другом tornado/eventmachine?
давно наблюдал элексир? там скоро нихуя от синтаксиса руби не останется.
на счёт ar всё так, это действительно убер фича рельсов.
Кстати, что по асинхронности в рельсах лучшее? Хочу сделать рейл тайм чатик, быстренький. В сторону eventmachine копать?
>ar всё так, это действительно убер фича рельсов.
ar = active record?
прям вот так вот, запросто свичнутся с рельс на ерланг или кложу-хуёжу? понятное дело что 2-3 года поебав CURD ты будешь делать его как бог с закрытыми глазами, но вот так вот просто свитчнутся - я чёт не думаю.
ar = active record
с асинхронностью в понимании tornado/nodejs/erlang в рельсах - никак.
есть faye но он такая же часть рельсов как и всё вышеперечисленное, разве что хелперы есть.
Так давайте всем руби тредом напишем какой нибудь асинхронщину с веб сокетами и убер скоростью, заодно убьюем нод жс и возрадим рельсы!
На кложуру посложнее будет, но вполне под силам. HTTP протокол тот же, принципы работы веб-приложений те же. Немного времени потратить на изучение языка и его экосистемы.
Нормалек, я ж говорю надо время на изучение, но после руби реально проще влиться, чем после джавы или пхп.
Если только крудошлепить и не развиваться, то конечно будет не легко.
можешь стриминг рельсовый попробовать
http://www.sitepoint.com/mini-chat-rails-server-sent-events/
сам не юзал
Тогда надо переписывать MRI.
Вообще идея годная, взять такую-то рождённую быть конкурентной эрланговскую VM и сделать на ней язык с рубячим синтаксисом без всего этого ивент дривен говна.
зайди потом, расскажи много ли там осталось от рубишного синтаксиса =)
почему я вижу только руби? тыкните мордой в ror
Спроси у майдаунов, где твоя работа.
Никому джуниоры не нужны.
Хотя бы 1 год опыта должен быть.
http://jobs.dou.ua/vacancies/?city=%D0%9A%D0%B8%D0%B5%D0%B2&search=Ruby
>Хотя бы 1 год опыта должен быть
Вот никогда не понимал этой параши. Как получить опыт, если без опыта не берут? Что за больной дебил это придумал вообще?
мимо
Стаж можно и дома получить, главное чтоб ты мог показать код и парочку своих проектов на жидхабе.
Ни разу такого не встречал.
Всегда думал что трудовая это анахронизм, во всяком случае в мире IT.
Не обязательно год. Если не будешь прокрастинировать, то можешь и за несколько месяцев управиться. Вон чувак написал 12 простых приложений за 12 недель, работая фулл-тайм: https://medium.com/@mackenziechild/how-i-finally-learned-rails-95e9b832675b
Он ещё и скринкасты записал для каждого. Сделай примерно также и ищи работу мидлом. Ну или попробуй найти заказ на одеске.
irb
С прокрастинацией как раз беда. Сам не справлюсь, нужны таблетки. Советуют фенотропил. Стоит пить? Времени у меня завались, но все что я делаю, это отвлекаюсь на двач, постоянно. А за этим пареньком я слежу как раз. Нравятся его видео.
фенибут ещё попробуй, ну и моё мнение что фенотропил жалкое подобие спидов (в умеренных дозах, разумеется.)
Эффект за день достигается? Или это курсом пить надо, и эффект через месяц?
Фенотропил вообще какое-то плацебо, попробовал один раз - испытал ровно нихуя.
Фенотропил по моему опыту дает результат через две-три недели, все сводится к тому что можешь спать по 4-5 часов и при этом ходишь как огурчик бодрый. Короче, он не лечит от лени, но дает дополнительную энергию или мощь чтоле, то есть если ты ебашил за троих, то после фенотропила будешь за десятерых ебашить, если не ебашишь за одного, или вообще нихуя не делаешь то результата не будет.
Прошел хартловский туториал, сел читать pickaxe, на 100 странице заебало, решил чего нибудь своими руками сделать.
Сел писать понг на госу, к тому моменту как пришло время делать таблицу рекордов с хранением в csv файле, понял, что пишу страшные индийские велосипеды, и пришлось возвращаться к чтению.
Джампстарта не получилось, а так хотелось. Хуево быть головожопым, парни.
Заводить под это таблицу как-то не рационально. Можно сделать класс от ActiveModel и сериализовать экземпляры в yaml. Но с другой стороны это как-то кустарно и менее универсально. Так как же лучше?
А еще может подскажите, какие вообще есть хорошие методики для организации баннеров на сайте.
Да ну, это же простой сайт без особой посещаемости и самые элементарные баннеры. Я даже отложенные задачи не стал делать на sidekiq, решил на delayed jobs.
почему не жалко таблицы для delayed job но жалко для банеров? Зачем вообще жалеть таблицы?
То есть ты считаешь, что держать таблицу ради 2-3 баннеров это нормально?
Я серьезно спрашиваю, не знаю как лучше.
ну ты рассуждай не с позиции как лучше, а с позиции как проще/удобней. на мой взгляд сделать то для чего рельсы созавались, в нём проще чем придумать хитрую систему импорта из yaml.
Зря смеешься. Психика у всех разная, и действует он тоже по-разному. Пилю кулстори.
Повышенный уровень тревожности блокирует всю мою активность: умственную, социальную, творческую. Транквилизаторы (по крайней мере бензодиазепинового ряда) убирают тревогу, тоесть убирают блок. И активность фонтанирует. Такие вот дела - вроде бы транк должен успокаивать, а он на меня оказывает противоположный эффект.
Не могу понять такую строку - current_user.articles.build (это после ассоциации статей к пользователю)
Как правильно добавлять колонки с этими user_id, чтоб модели были связаны, и прочие has_ang_belongs_to
Как вы выучили эту тему? Я уже 5 дней бьюсь.
колонки добавлять миграциями
http://rusrails.ru/rails-database-migrations
ознакомься с ассоциациями тут http://rusrails.ru/active-record-associations
изучается это просто, сначала надо ознакомиться с теорией реляционной модели данных, потом посмотреть на модели в рельсах через призму этих знаний.
Мне кажется рельсы уйдут в сторону изоморфных приложений, как meteor.js ну или voltrb на рубяхкомпилится на клиенте через opal
Хочу посмотреть какие там свойства внутри есть.
Жидхаб/рейлс/рейлс/актионпак
Ты ведь прекрасно понимаешь, что хуёво задал вопрос.
Просто убери расширение .erb/.slim и оставь .html. Или вручную впиши ссылку на .html файл в шаблоне. Только нахуй тебе это надо, я себе представить не могу. Может быть ты не хочешь рендерить layout? Тогда в контроллере напиши layout: false или render file: "path/to/file".
Ты мне испортил настроение на 27 секунд, гнида.
Ну что бы прям как в туториалах, сначала тесты, потом код?
У меня вот получается пока только по tdd модели описывать и контроллеры, а всякие там гуи-хуи как то ебаненько выходит. Может я что то упускаю?
пишу тесты ток когда все готово, и то чутка
не вижу профитов писать сначала тесты
получается просто дольше
на дизайн у меня это тоже не влияет, дизайн хороший когда над ним думаешь, а писанина лишняя только отвлекает
А какие тесты? Интеграционные? (капибара) или системные (контроллеры, модели, хелперы)?
Я когда то читал курс по тестированию в одном университете, так вот в рамках подготовки к этому курсу я наткнулся на очень интересное исследование от Майкрософта, которое утверждало что у ТДД имеется положительный ROI в следующих ситуациях:
1 Фаза отладки переносится на начало (если интересно, загугли boehm curve)
2 Закладывается платформа для быстрых контролируемых изменений (те же рельсы с 4.1 до 4.2 обновить)
Они мне начали очень нравиться, после полугода копания. Но я вижу, что они и так-то не особо популярны, а куча новый технологий, вместе с ебучим js-ом не дай бог писать на этом скобочном говне после рубей начинают сильно расти.
Неправда. Но вообще любые языки/технологии отмирают со временем, это нормально.
Тип того, многие не видят для них ниши в связи с активным развитием SPA
>SPA
Еле нагуглил что это сингле паге аппликатион.
А чем рельсы не подходят для таких приложений? Апи вполне можно писать же. Тем более, что рельсы это набор независимых модулей-гемов, там много чего, что пригодится в любой системе, эктиврекорд например.
Я хуярю, получается годно, мне нравится. У Upcase есть неплохие видео по ТДД, они мне помогли.
Ну вот на метеоре или волте свыше можно писать код для клиента т контроллера одновременно, а не писать например валидации сначала в ембере/ангуляре, а потом повторять в рельсовой модели.
так можно, только от рельс в таком случае остаётся хуй да нихуя, миграции и орм =)
Метеор в том чилсе.
>один код для клиента и бекенда конечно.
что-то из разряда "write once, run everywhere" или как нодисты любят говорить мол один язык и для клиента и для сервера заебись, такое то code reuse лол но мы знаем
А толку, бекенд то другая предметная область. Конечно js-дети своё ивент-дривен уебанство и на сервер тащат, так как больше ни во что не умеют, но это путь в никуда.
А кто сказал, что именно на жсе писать надо. Можно и на всяких кофе/лайвскриптах, да и на том же руби, который через opal на клиенте работает.
все руби спеки на опале проходят?
Пацаны из старбакса сказали?
Тут то ты можешь писать что угодно, но реально большинство контор даже даже с php + smarty ещё не слезли. У них RoR ещё впереди.
>golang
Он же не няшный.
>ember/react
Неосилятор ng- провайдеров фабрик штоле?
Реакт посложнее в использовании будет кстать, особенно если с flux. Ангуляр же удобный и няшный. То что делаешь за 10 минут на ангуляре будешь дрочить полчаса на реакте.
мимо 2 года пишу ангуляры
Правда, что на больших проекта ангуляр превращается в лапшу и начинает тормозить?
>но реально большинство контор даже даже с php + smarty ещё не слезли. У них RoR ещё впереди
Это в рашке. Ориентироваться же нужно на мировое сообщество. Да и возможно, что когда в рашке слезут со смарти, рельс уже не будет и они минуя их перейдут на что-либо другое, лол.
Я сейчас сижу читаю про изоморфные приложения и мне страшно. У меня такое ощущение, что я (и контора в которой работаю) безнадежно отстал от жизни, чувствую себя динозавром из 90-х.
Это они так от конкурентов избавляются.
>3.5 анона в треде
>конкуренты
В некоторых конторах пишут HTTP-сервера на C++.
Что сейчас учишь?
Параллельно учи нихонго и перебирайся на родину языка.
Это трал, забей. Для SPA серверсайд может быть на чём угодно, а RoR-way лучшее что пока случалось с веб-бекендами, в других языках лучшие веб-фреймворки выполнены именно в рельсовом стиле, тот же Play.
А golang весьма примитивен и маловыразителен, в отличие от рубей, там удобств ноль и инфраструктура не развита.
>Для SPA серверсайд может быть на чём угодно
Не совсем. Тут есть несколько проблем.
1. Сео.
Обычная реализация SPA это когда бекенд представлен API, а фронтенд js-кодом, который рендерит html-страницу уже на клиенте, ПОСЛЕ ЗАГРУЗКИ. Т.е. крулер (браузер) получает пустую страницу с js-кодом, который потом уже отрендерит html.
2. Производительность.
SPA-приложение работает быстро без перезагрузок страницы, но первоначальный рендер занимает много времени, что плохо влияет на UX - пользователь должен ждать несколько критичных секунд. Амазон утверждает, что сокращение времени загрузки на 100мс увеличивает прибыль на 1%.
3. Поддержка.
Можно поддерживать традиционный и SPA-интерфейс отдельно, но это превратится в кошмар и очень сильно усложнит приложение. Но в любом случае, какие-то куски, вроде роутинга и валидаций, будут дублироваться и на клиенте и на сервере.
Эти проблемы решаются при изоморфном подходе, когда клиентский код может выполняться и на сервере и на клиенте. Решается проблма с СЕО и производительностью и логика роутинга и валидаций является единой во всем приложении.
Изоморфные приложения это очень здорово, это будущее, которое все ближе. Но только очень жаль, что это будущее на JS. Это недоразумение.
HTML и весь клиентский стек вместе с браузерами и js это насквозь легаси-технологии, обросшие кучей костылей. Все это развивалось спонтанно, без единой политики или стандарта, технологии появлялись в разных местах и компаниях, и со временем включались в разные стандарты с оглядкой на обратную совместимость. Весь фронт-енд это ебанный обезбянник. Но он настолько большой и так прочно вошел в жизнь, что от него нельзя уйти. И вот потому что в этом обезьяннике используется блядский JS, Backend должен теперь перейти на это говно, чтобы достичь изоморфности. Хотя на третьей картинке есть компромис.
это репост с хабра? Все уже читали.
>Сео
Гугл давно уже умеет в джяваскрипт, выблядок
>первоначальный рендер занимает много времени
Хуйню несешь
>Backend должен теперь перейти на это говно
Нет, фронтенд должен перейти на нормальные языки.
Вай-вай дарагой, спасибо за ссыль. Я по совместительству фанат имьютабл-говна и скала-говноед, так что постараюсь заюзать эту парашу в каком-нибудь из ближайших проектов просто потому что могу.
зачем поисковику индексировать формочки с валидацией?
зачем например, wikipedia трансформировать в SPA?
Есть какой-нибудь йоба-гем чтобы найти между событиями временные промежутки (чтоб потом засадить туда новые события)?
Вопрос: есть ли какой-нибудь красивый способ перезапускать это дело после ребута сервака? Или только скрипты типа "service start/stop"?
Во первых, я мудак и написал "rails + unicorn" вместо "nginx + unicorn".
Во вторых,
>apache+passenger
не те же ли это самые яйца? Всё равно же придётся запускать что-нибудь типа "passenger_rails -c config/passenger.rb -E production".
В третьих, хотелось бы всё таки какое-нибудь решение с единорогом. Не хочется поднимать ещё один сервак из-за такой фигни.
Не знаю как в ебунте, но в операционных системах для этого существует systemctl
Ещё один различающий яйца в профиль и анфас.
Может расскажешь чем же сисктл-ные скрипты отличаются от service start/restart в ебунте?
Не употребляя слов "Леннарт", "бог" и "сосёт".
capistrano?
Я не знаю, что конкретно виновато, но при переходе по ссылке с якорем, бэкбоновский роут дергается дважды, что частично ломает js-код. Ковыряясь, нашел только https://github.com/rails/turbolinks/blob/master/lib/assets/javascripts/turbolinks.js.coffee#L196
Кто мудак (я) и можно ли это починить?
Выключи нахуй турболинки вообще, они с бэкбонами и ангуларами по умолчанию не совместимы. Ни это, так другое потом вылезет.
[code]
resources :posts do
resources :comments
resources end
resources :comments
[/code]
хочу один и тотже контроллер и вью для comments но если доступ через посты то авторизировать через посты
cancan больше не поддерживается и не работает с 4-ми рельсами. Используй Pundit.
Как их использовать? Нужно ли связывать рельсовые модели с их моделями? Если юзать ангуляровские - то есть ли там рилейшны, как в рельсах или нинужно?
Нужно ли юзать рельсовые роуты или ангуляро/бекбоновские? Если второе - то как из связать с первыми.
Еще, я так понял, у ангуляра свой сервер (grunt жи), как его с вебриком (хотя бы) подружить? Через какое нибудь прокси или есть нативное решение?
Я так понимаю, общая суть такова: рельсы выплевуют JSON вместо htlm. Этот JSON парсится и рисуется фронтэндом. Правильно? Где почитать самые основы? (Я имею в виду не основы самого бекбона/ангуляра), а про то, как их прикрутить на рельсы.
А причем тут рельсы.
А там что, есть про ангуляр и бэкбон?
Ньюфаг в треде.
Хочу подцепить mongodb к рельсе. Погугли немного. Нужно избавиться от АктивРекорд, поставить пару гемов и подправить конфиг и собственно, саму монгу поднять. Вроде бы ничего особенного, но может я что-то упускаю из виду? Какие тут подводные камни?
Кстати да, Антоши, если смысл в современных условиях использовать монго? Есть тут адепты этой базы данных?
У монго есть своя ниша, там она и используется. Или ты собрался делать форум на монге тоже?
Пытаюсь прикрутить к Rails приложению редактирование контента через CKEditor + Paperclip, все в порядке но почему-то соснул с загрузкой изображений размером > 2Mb. При попытке загрузки получаю "думающий браузер" и rollback transaction, в логах:
Parameters: {"qqfile"=>"sun.jpg"}
Command :: file -b --mime '/tmp/d8ab08e2af16b4922a648314d0181b34be53d58720150113-27774-f6w7mw'
Command :: file -b --mime '/tmp/ebd556e6dfc99dbed29675ce1c6c68e520150113-27774-pwhpqq.jpg'
User Load (0.5ms) SELECT "users". FROM "users" WHERE "users"."id" = 1 ORDER BY "users"."id" ASC LIMIT 1
(0.3ms) begin transaction
Command :: file -b --mime '/tmp/ebd556e6dfc99dbed29675ce1c6c68e520150113-27774-sb8j77.jpg'
(0.1ms) rollback transaction
Rendered text template (0.0ms)
Использую стандартный Webrick в Development окружении
Пожалуйста, скажи куда копать
file -b --mime '/tmp/ebd556e6dfc99dbed29675ce1c6c68e520150113-27774-sb8j77.jpg'
что это команда в консоли возвращает? дебаг включить пробовал?
Ты ваще дебажил?
включи режим отладки, сейчас уровень логирования недостаточен что бы о причинах судить.
Ну не храни реляцию просто пихай в json все свои данные. Как именно предполагается использовать эти нереляционные сущности? Можно живой кейс, а не маркетинговый булщит который я и сам могу почитать на сайте монги?
>Ковыряю рубирельсы уже долго, понаписал скриптиков, блогов, имиджборд. Напроходил туториалов, прочитал пару книжек.
Господа рубисты, успешные и не очень, можете пояснить мне? Как так может быть?
Я типичный хеллоуворлдщик, всегда себя таким считал. Но мне с детства интересна тема программирования, даже в школе хотел быть программистом, лол. Но терпения и усидчивости не хватает. Начинаю изучать что-нибудь, что ВНЕЗАПНО заинтересует, когда настроение появляется (раз в полгода, лол). Дропаю максимум через месяц, алсо в матане никогда силен не был. Но при прочтении этой книжки (Learn to Program) я-таки решил упомянутую аноном задачу, пусть не сразу, но решил.
>>415409
>Это от того, что ты Dive into Python не читал
Не нужна в этом случае абсолютно. Просто надо подумать, а если не получается, то еще подумать.
Так вот вопрос:
То, что этот анон привел, как пример того, что он уже делал кажется мне пиздец сложным. Неужели я ошибаюсь, и это проще задачки про римские цифры? Есть ли у меня шансы превратить периодический интерес в постоянное хобби, а возможно и в профессию.
P.S. Книжка Learn to program очень понравилась, руби тоже. Не понимаю, почему кто-то здесь ее обосрал.
P.P.S. Изучал C в шараге, упарывался паскалем в школе. Сейчас работаю АСУшником, иногда (очень редко) по работе приходится заниматься байто- и даже бито-ебством (тоже доставляет, но не так, как высокоуровневое).
Так про капистрано я знаю, но умеет ли он настраивать сервак для отображения в локальной сети?
Это копия, сохраненная 27 января 2015 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.