Рубрика «ruby on rails» - 39

Привет, %username%!

Evil Martians в третий раз проведут мастер-класс по разработке на Ruby on Rails 19 и 20 мая: http://brainwashing.pro/rails.

Читать полностью »

Хочу поделиться своими соображениями. Я читал много топиков на тему Ruby, Ruby on Rails, Ruby vs PHP, Python vs PHP. «Каждый кулик свое болото хвалит». Я считаю, что это дело сугубо каждого — какую систему или язык программирования использовать, личные предпочтения, как говорится, на вкус и цвет товарищей еще поискать. Но суть даже не в этом. Я хорошо знаю PHP, не так давно взялся за изучение Ruby и Ruby on Rails. Знаете, как ни странно это звучит, но мне нравятся обе системы — и PHP, и Ruby, возможно даже одинаково. В Ruby есть свои прелести, которые привлекают — мощность самого языка, очень понятный и лаконичный синтаксис (если с толком подойти к изучению), в PHP — простота и все та же лаконичность языка. Хорошие системы, хорошие инструменты, но все же Ruby как-то в роли догоняющего. Что же тут не так?
Читать полностью »

Процесс создания плагинов для Redmine очень слабо документирован. Задача данной статьи отчасти восполнить этот пробел, рассказав про успешный опыт создания небольшого, но полезного плагина. Важное примечание. Redmine написан на Ruby on Rails, вам нужно быть к этому готовым, если вы собрались делать свой плагин :)
Читать полностью »

imageДанный пост является ответом на пост "Почему люди выбирают PHP, или почему миллиарды мух могут ошибаться". Надеюсь, мне удастся развеять миф о несостоятельности платформ вроде Ruby и Python, который активно распространяется PHP разработчиками, причем разработчиками т.с. нижнего сословия, которые кроме PHP больше ничего не видали. Конкретно в данной статье я формате вопрос-ответ расскажу о том, почему Ruby и Rails — реальные игроки, почему они популярны и можете ли вы их использовать для построения собственного бизнеса в интернете.

Читать полностью »

Аутентификация в rails-приложениях через facebook, vkontakte

Аутентификация в rails приложениях с помощью facebook, vkontakte
В данной статье будет рассказано, как сделать простейшую аутентификацию в rails-приложении через социальные сети vkontakte и facebook, помогают в этом гемы omniauth, omniauth-facebook, omniauth-vkontakte. Материал рассчитан на новичка. Хоть это и будет учебное приложение, но для придания законченности используем bootstrap с помощью гема twitter-bootstrap-rails.
Читать полностью »

Resque — ruby-библиотека для создания фоновых задач, составления очередей таких задач и их последующего выполнения. Задачи могут быть любым ruby-классом или модулем, содержащим метод perform. В ruby-сообществе Resque пришел на смену Delayed Job (не знаю, кстати, почему проект перестал развиваться, весьма удобная была вещь на мой взгляд) и обладает большим количеством различных преимуществ, таких как разделение задач по разным машинам, приоритеты задач, устойчивость к разным утечкам памяти и еще, и еще, и еще. На этом вступление для тех, кто не может самостоятельно перевести первый абзац из README прошу считать законченным.

В данной статье будет показано как использовать resque и resque-scheduler в rails-приложении.
Читать полностью »

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

Читать полностью »

В процессе превращения большей части web-проектов в браузерные приложения, появляется много вопросов. И один из самых весомых из них – обработка прав доступа без лишнего кода. Размышления на эту тему привели нас к большой проблеме: комфортного способа реализовать защиту на уровне полей модели для ActiveRecord просто нет (Егор, привет! ;). CanCan добавляет ограничения на уровне контроллеров, но это слишком высокий уровень чтобы решить все проблемы.

Немножко пободавшись, мы написали два милых гема. Встречайте, Heimdallr (Хеймдаль) и его расширение Heimdallr::Resource. Они принесут в ваши модели мир и безопасность.
Читать полностью »

Вы бывали на вечеринках, где друзья с работы и друзья из колледжа не разговаривают?

Я запостил видео на Tumblr, которое бы никогда не запостил на Facebook:

Это гитарист, отжигающий под «Bangarang» группы Skrillex.
Читать полностью »

Доброго времени суток, Хабровчане!

Сразу же извините меня за мой русский, так как мой родной язык украинский.

Я Ruby On Rails разработчик и много раз сталкивался с потребностью модальных окон в моих проектах. Перепробовал я много готовых таких как facebox, fancybox, диалоги с jQuery UI и тд.
На одном из моих последних проектов заказчик захотел добавить конфирм диалог перед удалением какого либо ресурса. Надо было выводить красивое диалоговое окно, а не джаваскриптовый алерт который дает нам rails ujs. Тогда в нас использовался facebox и мне пришлось лазить по всему проекту допиливать все это для фейсбокса. И тогда я решил написать что то свое, но чисто для рельсов, так все выше упомянуты легко прикрутить куда угодно.
Основной фишкой гема стало то что стандартные рельсовские конфирмейшены можно заменить лишь прописав одну строчку в application.js файле. Добавил еще поддержку картинок чтобы не было необходимости ставить еще что то если на проекте надо простая галерейка. Все занимает только 5kb. Работает во всех браузерах и в ie начиная с седьмой версии.

Выглядит вот так:
image
image
Правда для IE не такая красивая закрывалка. Кому надо что бы ну прям во всех браузерах выглядело одинаково надо поставить опцию:

$.lazybox.settings({niceClose: false})
Гем умеет:

  • Выводить конфирм диалоги
  • Выводить ремоут страницы
  • Выводить картинки
Установка проще простого

Gemfile:

gem 'lazybox'

application.js:

//= require lazybox

applications.css:

*= require lazybox

Для того чтобы заменить стандартные конфирмы в applications.js добавьте

$.rails.allowAction = $.lazybox.confirm;

У библиотеки есть много опций. Просмотреть можно тут
Демо тут

Спасибо за внимание.Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js