Обновить
-0.2

Ruby on Rails *

Фреймворк, написанный на Ruby

Сначала показывать
Порог рейтинга
Уровень сложности

ActiveRecord Hacks

Время на прочтение4 мин
Количество просмотров11K
Сегодня я поделюсь своим набором не всегда очевидных функций и возможностей Active Record, с которыми я столкнулся в процессе разработки Ruby on Rails приложений или нашел в чужих блогах.

Читать дальше →

Ruby on Rails. Установка, настройка, начало работы

Время на прочтение7 мин
Количество просмотров112K

Зачем.


В этой маленькой статье, которую с удовольствием прочитал бы сам неделю назад, я попытался собрать все вещи, которые понадобились бы человеку, задумай он «с нуля» написать приложение на RoR. То есть не углубляясь ни в одну из областей, описать необходимый минимум действий, чтобы установить, настроить и написать своё первое приложение.Здесь собрано, как мне кажется, всё, что нужно и я надеюсь этот текст сэкономит кому-нибудь несколько часов поиска в интернете). Сам изучаю RoR вторую неделю, так что не судите строго).

Установка.


Просто и быстро ror ставится через rvm c rvm.io.

>\curl -L https://get.rvm.io | bash -s stable --rails --autolibs=enabled


Запустить rvm:

>source /Путь_к_домашней_директории*/.rvm/scripts/rvm

*$HOME в дальнейшем.
После этого в $HOME/.bash_profile должна появиться строчка:

[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function*


и при каждом открытии консоли rvm будет подгружаться, но у меня этого не случилось — пришлось ещё в $HOME/bashrc прописывать:

. ~/.bash_profile


Теперь всё точно должно быть хорошо.
Устанавливаем нужную(скорее всего это будет самая последняя) версию руби (сколько их и в чём отличие можно посмотреть здесь -http://www.ruby-lang.org).
>rvm install 1.9.3

Проверка на успешность создания
>ruby -v

должна вернуть более подробную информацию, вроде
ruby 1.9.2p320 (2012-04-20 revision 35421) [x86_64-linux].

В процессе установки я случайно установил несколько версий, что потом доставило некоторые неприятности). Посмотреть список установленных версий руби можно так:
>rvm list
Если версий несколько, то текущая будет помечена "=>", дефолтная — "*", а текущая и дефолтная — "=*". Поменять на нужную используемую версию можно так:
>rvm use ruby-1.9.2-p320 (любая нужная версия)

Чтобы поменять дефолтную версию руби пишем:
>rvm use ruby-1.9.2-p320 --default

Читать дальше →

Не бывает «чистых» программистов

Время на прочтение3 мин
Количество просмотров29K
С появлением Ruby on Rails уровень технических знаний необходимых для создания веб-приложений понизился. Становятся ли знания и опыт менее критичными?

Я думаю, Ruby on Rails очень сильно понизил планку в терминах «что нужно для того, чтобы запустить веб-приложение». Некоторые видят в этом только отрицательную сторону. В духе, «Ой, варвары у ворот» или «Ну вот, сейчас все эти немытые дикари хлынут в наши замечательные программистские сообщества». Я уже не раз слышал такое. Многие ругали Visual Basic за что, что он открыл двери для, так называемых, «не чистых» программистов. Я думаю, все это — чушь собачья.

Читать дальше →

CRUD-приложение на Ext JS и Ruby on Rails за 7 минут

Время на прочтение5 мин
Количество просмотров22K
Это обновленная версия устаревшего поста.

Этот пост покажет вам простые шаги по созданию менеджера задач TODO с использованием Ext JS, Ruby on Rails и Netzke. Это займет у вас приблизительно 7 минут, и если вам заранее любопытно, стоит ли оно того, загляните прямиком в секцию «Обсуждаем результаты» (кстати, самую большую). Наша цель заключается в создании веб-приложения которое позволит нам добавлять, редактировать и удалять задачи TODO, так же как и помечать их как завершенные. В дополнение к этому вы сможете сортировать задачи, делать поиск по ним, редактировать несколько задач одновременно — и это еще не все. Если хотите, засекайте время на секундомере — и давайте приступим.



Читать дальше →

RubyMine 5.4 готов к выходу Rails 4

Время на прочтение1 мин
Количество просмотров8.2K
Мы рады сообщить о том, что новая версия RubyMine, интегрированной среды разработки для Ruby on Rails, доступна для скачивания.

Несмотря на то, что прошло всего два месяца с момента выхода RubyMine 5, мы готовы поделиться новым функционалом и надеемся, что наши пользователи будут рады новым возможностям.
Читать дальше →

Разработка встраиваемого JavaScript приложения

Время на прочтение4 мин
Количество просмотров13K

Вместо вступления


Я хочу рассказать вам о некоторых трудностях, с которыми мы столкнулись при разработке встраиваемого JavaScript приложения, виджета комментариев "Комментатр".
В этой статье я опишу некоторые проблемы и тонкости разработки подобных приложений, а также предложу варианты их решения.
В качестве backend–решения мы используем приложение на Ruby on Rails, поэтому некоторые фрагменты этой статьи будут специфичны для Rails–окружения.

Комментатр состоит из двух проектов: API и виджета, который устанавливается на сайт клиента. Речь пойдет об их взаимодействии между собой и виджета с сайтом клиента. В основном общение виджета и API происходит посредством JSONP, который, как известно, поддерживает только GET–запросы. В связи с этим возникает первая сложность.

Читать дальше →

Избавляемся от повторения кода с помощью DRY CRUD

Время на прочтение5 мин
Количество просмотров9.3K
Фреймворк Ruby on Rails меня просто очаровывает, но до недавнего времени некоторую сложность представляла из себя генерация CRUD контроллеров.

Почти всегда мне было необходимо реализовывать списки с сортировкой, фильтрацией и пагинацией, а стандартного способа этого достичь в рельсах я не обнаружил. Перепробовал несколько вариантов и ни один меня не удовлетворил:
  • стандартный генератор scaffold_controller — ничего подобного нет, CRUD с простейшим дизайном
  • nifty Scaffold — его разработка приостановлена, но все равно фильтрации и сортировки нет
  • гем для DataTable — не прижился, он обеспечивает только представление данных, а код для фильтрации и сортировки пришлось бы писать самому

Долгое время не удавалось найти ничего похожего на полюбившийся мне виджет CGridView из Yii framework. Уже почти смирился с необходимостью писать свой велосипед, но наткнулся на DRY CRUD и хочу поделится опытом его использования. Может кому-то он окажется полезным, а может кто-то подскажет еще более подходящий инструмент.
Далее

RVM Autolibs: Автоматическое управление зависимостями и Ruby 2.0

Время на прочтение3 мин
Количество просмотров4.7K

Прошлый месяц ознаменован началом новой вехи для рубистов — релиз Ruby 2.0.0. Вместе с ним обновлённый RubyGems и новые зависимости, включая OpenSSL. Ранее RVM почти ничего не предпринимала для разрешения зависимостей, устанавливая вместо этого LibYAML, так как он был нужен для функционирования RubyGemsк. Ситуация изменилась с появлением OpenSSL, так как это является бОльшей зависимостью. Раньше для Ruby 2.0.0-rc RVM устанавливал OpenSSL. Однако компилирование OpenSSL не лёгкая задача, используя LibYAML.
Читать дальше →

Разработка приложений на Ruby on Rails в Visual Studio

Время на прочтение3 мин
Количество просмотров20K
Речь сегодня пойдет о том, как разрабатывать и отлаживать приложения на всеми уже давно любимом фрэймворке Ruby on Rails. Для всех меня лично с первого дня знакомства с Rails привычно стало использование следующей связки:
— Ubuntu
— Rvm
— Gedit + terminal (в качестве среды разработки)
Но сегодня хотелось бы поговорить о разработке на рельсах именно под виндой Windows в лучшей объективно по моему мнению среде разработки на сегодняшний день MS Visual Studio. Кому интересно прошу под кат.
Читать дальше →

Выпущены Rails 3.2.13, 3.1.12, и 2.3.18: исправление 4х уязвимостей безопасности

Время на прочтение1 мин
Количество просмотров3.7K

Итак, найдены очередные уязвимости в Rails. На этот раз их 4:

Уязвимости исправлены в версиях 3.2.13, 3.1.12, и 2.3.18. Настоятельно рекомендуется обновиться.
Подробнее тут.

Быстрое разверытвание среды разработки для Ruby on Rails

Время на прочтение3 мин
Количество просмотров7.4K
Привет хабражители. Если вам надоело постоянно устанавливать на новых машинах с разными ОС одно и тоже rails окружение с десятками зависимостей и кучей пакетов, то предлагаю вам ознакомится с интересным решением от rails-core разработчиков. На вашей хост-машине нужно иметь лишь Vagrant и Virtual Box.
Читать дальше →

Узнайте бандлер получше

Время на прочтение5 мин
Количество просмотров17K
Бандлер оказался замечательным средством установки и отслеживания джемов, которое так нужно каждому руби проекту настолько, что почти каждый проект использует его. Однако, несмотря на его повсеместность, большинство пользователей не знают о встроенных средствах и помощниках бандлера. В попытке повысить осведомленность (и производительность Руби разработчиков), я собираюсь рассказать вам о них.

Читать дальше →

Тонкости Rails 4 — Thread-Safety

Время на прочтение7 мин
Количество просмотров24K


В Rails 4.0 по умолчанию будет включена опция config.threadsafe! и в данном уроке вы узнаете о том, что же она все-таки делает, как влияет на production и как вообще стоит вести себя с потоками.
Читать дальше →

Ближайшие события

Авторизация через Facebook, Google, Twitter и Github используя Omniauth

Время на прочтение16 мин
Количество просмотров31K
Озадачившись однажды вопросом добавление регистрации/входа на сайт через сторонние сервисы начал искать, что уже есть готового, либо описания как это уже кто-то делал. Готовые сервисы были откину сразу, остался вариант реализовывать самому. И тут Google навел на подробную инструкцию. Ознакомившись и вдохновленный тем решением сделал свою модификацию, все работало, был просто счастлив.

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

И так приступим...


Эта глава будет посвящена известному гему Omniauth. Omniauth это новая система идентификации поверх Rack для мультипровайдерной внешней идентификации. Он будет использован для связи CommunityGuides (прим: в настоящий момент ресурс не доступен и похоже уже не вернется) с Facebook, Google, Twitter и Github. Данная глава покажет как интегрировать все это с существующей идентификацией через Devise.
Читать дальше →

Что нового в Rails 4

Время на прочтение16 мин
Количество просмотров25K
Четвёртая версия фреймворка Ruby on Rails уже не за горами. Хотя официальной даты релиза еще нет, многие ожидают release candidate уже в начале этого года.
Эта версия фреймворка разрабатывается уже год и представляет из себя множество изменений во внутренней архитектуре. Фреймворк эволюционировал и прибрёл более модульный формат, большинство из нововведений раскидано по отдельным джэмам, для того, чтобы основной код оставался чистым. Таким образом, устаревший функционал можно официально не поддерживать, но использовать, если такая необходимость возникнет.

Во время написания этих строк Engine Yard пока что официально не поддерживает Rails 4 в наших облачных продуктах. Однако, если вы хотите таки их опробовать, вы, конечно, же сможете. Однако будьте внимательны — некоторые возможности, особенно live streaming, скорее всего не будут работать.

Если вы столкнётесь со сложностями при попытке развёртывания приложений на Rails 4, то их нужно регистрировать как feature requests, а не как баг, так как мы ещё не закончили интегрирование Rails 4 в наши продукты.
Читать дальше →

Установка и настройка Redmine 1.3.0 на Windows XP SP2 / Windows 7

Время на прочтение4 мин
Количество просмотров15K

Знакомство с Ruby on Rails (RoR)


В моей повседневной жизни возникла потребность использовать веб приложение для управления проектами, Redmine. Так как на своем домашнем ПК я использую ОС Windows XP SP2, предполагал ряд проблем с установкой и настройкой Redmine. В общем то так оно и получилось.

Убив от 5 до 6 часов на поиск документации по установке и исправлении ошибок, у меня все таки получилось увидеть в своем браузере интерфейс Redmine *СЧАСТЬЕ*.

В статье я постараюсь рассказать вам о установке и настройки всех необходимых компонентов для использования Redmine на ОС Windows XP SP2 / Windows 7. Начнем с терминов и названий.
Читать дальше →

Срочно обновляемся до Ruby on Rails 3.2.12, 3.1.11 и 2.3.17 во благо собственных нервов

Время на прочтение1 мин
Количество просмотров11K


Доброго времени суток, дорогой читатель. Надеюсь, что ты читаешь этот короткий пост за своим утренним кофе, и тебе не пришлось творить экстренный деплой посреди ночи. Иначе — соболезную, и предлагаю тебе обновить свои Ruby on Rails приложения прямо сейчас.
Читать дальше →

Состоялся релиз RubyMine 5

Время на прочтение2 мин
Количество просмотров9.7K
Мы рады сообщить, что вчера вышла новая версия интегрированной среды разработки для Ruby и Rails — RubyMine 5, которую можно загрузить с нашего сайта.

В новой версии мы постарались добавить новые возможности, которые позволят получить удовольствие от разработки на Ruby во всем ее многообразии. Уже хорошо зарекомендовавшие себя инструменты разработки теперь доступны для еще большего числа Ruby-приложений, в том числе и для iOS-приложений на базе технологии RubyMotion, быстро набирающей популярность. Для приложений RubyMotion стали доступны интеллектуальное автодополнение кода, тестирование и отладка с использованием графического интерфейса.

Более подробно о RubyMine 5 можно узнать на странице What’s new. Также мы рады представить демо-видео от технического евангелиста Джона Линдквиста (John Lindquist).
Читать дальше →

Первые жертвы критических уязвимостей Rails: RubyGems.org подвергся хакерской атаке

Время на прочтение1 мин
Количество просмотров12K
Не успело Rails сообщество оправиться от последних критических уязвимостей с YAML парсингом, как злоумышленники нанесли удар по святому — RubyGems.org(wiki) подвергся хакерской атаке, через выше описанные уязвимости. Как минимум один зловредный гем был залит на RubyGems, который потенциально имел доступ к чувствительной информации, включая права на манипулирование гемами.
Читать дальше →

Критическая уязвимость в Rails. Опять

Время на прочтение1 мин
Количество просмотров12K

Очередная уязвимость(CVE-2013-0333) в Rails позволяет злоумышленникам минуя аутентификацию запускать произвольный код.

Уязвимые версии: 2.3.x, 3.0.x
Безопасные: 3.1.x, 3.2.x или приложения использующие yajl-ruby
Пофикшено в версиях: 3.0.20, 2.3.16
Опять!?

Вклад авторов