Как стать автором
Обновить
6.65

Ruby on Rails *

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

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

Обзор книги «Beginning Rails 3»

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


С самого своего выхода третья версия этого замечательного фреймворка начала активно вытеснять вторую. Это, конечно, прекрасно, но изменений между версиями довольно много, некоторые имеют статус deprecated. А это значит, что одних только знаний второй версии для полноценного использования Rails будет недостаточно.
Именно так я рассуждал, когда начал искать литературу по третьим рельсам. Почему именно литературу, а не документацию? Потому что только осенью я обратил внимание на этот фреймворк, а учиться лучше всё же по книгам (я так считаю). И какова же была моя радость, когда я наткнулся на сайт книги Beginning Rails 3, которая вышла в свет только в сентябре.
Читать дальше →
Всего голосов 43: ↑36 и ↓7+29
Комментарии39

Phusion Passenger 3.0.0

Время на прочтение1 мин
Количество просмотров14K
Phusion Passenger — сервер приложений для Ruby.

Основные новшества по сравнению с версией 2.2.:

Apache: на 36% быстрее
Nginx: на 55% быстрее

image

Читать дальше →
Всего голосов 39: ↑34 и ↓5+29
Комментарии20

Знакомство с Ruby on Rails 3.0

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


Добрый день, друзья. Не так давно мы с друзьями-коллегами решили поизучать Ruby on Rails – что это такое и с чем едят – для использования в будущем при разработке своих проектов.

Так как знаний по данной теме не было вообще, то и двигаться решили постепенно. При начальной установке Ruby с Rails 3.0 мы столкнулись с некоторыми трудностями, о которых в мануалах так сходу никто не упоминал. Поэтому я решил написать это небольшое руководство (которое является обобщением собственного опыта и перевода мануала на guides.rubyonrails.org/getting_started.html) по изначальной установке и настройке Ruby on Rails 3.0 для того, чтобы помочь таким же начинающим как я найти полезную информацию в одном месте и сэкономить свое время.
Читать дальше →
Всего голосов 75: ↑58 и ↓17+41
Комментарии80

13 конференция RailsClub.ru

Время на прочтение1 мин
Количество просмотров564
Спешу сообщить о том, что очередная Московская конференция railsclub.ru — 30 октября 2010 года в Здании фабрики «Красный Октябрь» (м. Кропоткинская).

Подробнее со списком докладчиков и темами можно познакомиться на сайте Railsclub.ru
Участие бесплатное! Требуется обязательная регистрация на сайте конференции. Начало конференции в 13:00.

Информация о конференции, регистрация, докладчики http://www.railsclub.ru/
Список зарегистрированных участников http://www.railsclub.ru/conferences/registered_users/20
Всего голосов 6: ↑5 и ↓1+4
Комментарии2

Истории

Как сделать javascript_include_tag рекурсивным?

Время на прочтение1 мин
Количество просмотров1.2K
Не знаю как вам, а мне давно не доставало возможности подключать свои js-файлы пачками.

Напомню, что в Rails есть стандартный хелпер javascript_include_tag(:all, :recursive => true), который включает все файлы из public/javascripts. Но мне захотелось управлять этим процессом. И вот что у меня получилось:

<%= javascript_include_tag collect_js("jquery-1.4.2", "jquery.*", "lib/*, "application") %>


По умолчанию происходит рекурсивное подключение всех *.js файлов по указанным шаблонам, но это можно отключить:

<%= javascript_include_tag collect_js("jquery-1.4.2", "jquery.*", "application", :without_recursion => true) %>


Исходный код хелпера под катом
Читать дальше →
Всего голосов 2: ↑2 и ↓0+2
Комментарии6

Ruby on Rails 3 — Заметки к финальному релизу

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

Оглавление

  1. Переход на Rails 3.0
    • Rails 3 требует Ruby 1.8.7+
    • Объект Application в Rails
    • script/* заменен на script/rails
    • Зависимости и config.gem
    • Процесс перехода
  2. Создание приложения на Rails 3.0
    • Включение гемов
    • Жизнь на грани
  3. Архитектурные изменения
    • Перезарядка Railties
    • Все компоненты ядра Rails теперь независимы
    • Абстракция Active Model
    • Абстракция контроллеров
    • Интеграция Arel
    • Извлечение Mail
  4. Документация
  5. Интернационализация
  6. Railties
  7. Action Pack
    • Абстрактный контроллер
    • Action Controller
    • Action Dispatch
    • Action View
  8. Active Model
    • Абстракция ORM и интерфейс c Action Pack
    • Валидации
  9. Active Record
    • Интерфейс запросов
    • Усовершенствования
    • Патчи и устаревшие методы
  10. Active Resourсe
  11. Active Support
  12. Action Mailers
  13. О создателях
Читать дальше →
Всего голосов 109: ↑99 и ↓10+89
Комментарии57

Как быть с HTML-письмами?

Время на прочтение2 мин
Количество просмотров5.9K
Недавно столкнулся с задачей по верстке HTML-писем. Как известно, многие почтовые клиенты, в том числе и Gmail игнорируют css-классы и содержимое тега style, не говоря уже о подключении внешних CSS-файлов. Поэтому обычной практикой при верстке HTML-писем является использование inline-стилей. Если делать это самостоятельно, то шаблон письма очень быстро превращается в кашу, поддерживать и расширять которую очень сложно. В связи с чем rails-разработчики используют различные плагины, которые позволяют «встроить» css-класс в аттрибут style.
Читать дальше →
Всего голосов 39: ↑28 и ↓11+17
Комментарии38

Как можно легко и просто реализовать опции в Ruby on Rails

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

Пролог


image
Наверное всем веб (а может и не только веб) разработчикам рано или поздно приходилось сталкиваться с такой задачей как опции пользователей. Что я имею ввиду проще всего показать на картинке. Под опциями будем понимать чекбоксы (то есть опция либо есть либо нет). Обычно таких опций не слишком много, порядка 2-10. Обычно их указывают при регистрации и/или редактировании профиля.

Постановка задачи


Походу разработки какого-либо проекта как правило число этих настроек (да и сами настройки) могут варироваться, так что было бы неплохо реализовать механизм этих опций так, чтобы добавлять/изменять/удалять их было максимально просто, изменив при этом как можно меньше кода. Я расскажу как можно решить и как решил эту задачу я в рамках фреймворка Ruby on Rails.
мне интересно
Всего голосов 41: ↑30 и ↓11+19
Комментарии32

Обзор новинок в Ruby on Rails

Время на прочтение5 мин
Количество просмотров1.9K
Для начала мы обратим внимание на Rails 2.3.8 — многие из вас слышали о нем, но не все знают, что конкретного там поменялось. К слову, основные нововведения произошли в версии 2.3.6, а .7 и .8 версии лишь исправляли ошибки.

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

1. Переработан флеш, рекомендуется использовать два базовых типа — alert и notice. А еще его можно использовать с редиректом.
Вот как было:
flash[:notice] = 'Статья добавлена'
redirect_to @article
И как можно писать теперь:
redirect_to(@article, :notice => 'Статья добавлена')
Стоит учесть, что если у вас есть свой тип флеша, например, flash[:error], то добавить его к редиректу не получится.
Читать дальше →
Всего голосов 54: ↑51 и ↓3+48
Комментарии26

Три релиза Ruby on Rails за три дня

Время на прочтение1 мин
Количество просмотров619
ruby on railsСпустя 6 месяцев после последнего релиза обновился Ruby on Rails до версии 2.3.6. Изменения в основном связаны с исправлениями багов, добавлением нескольких новых функций и подготовкой плацдарма для перехода на Rails 3.0. С полным списком изменений можно ознакомится по ссылке Ruby on Rails 2.3.6

На следующий день вышел Ruby on Rails 2.3.7, который исправил баги с безопасностью HTML, скопированные из Rails 3.0, но добавил баг связанный с rails_xss плагином. Этот баг делал уязвимыми приложения, которые этот плагин не использовали.

Ну и последним на данный момент является Ruby on Rails 2.3.8, в котором все работает как надо.
Всего голосов 53: ↑44 и ↓9+35
Комментарии19

Слияние Rails и Merb: Производительность (Часть 2 из 6)

Время на прочтение9 мин
Количество просмотров909
Шесть последовательных статей о слиянии Rails и Merb были опубликованы на www.engineyard.com с декабря 2009 до апреля 2010 года. Это вторая статья. Первая тут.

Следующим замечательным улучшением, которое мы надеялись внедрить в Rails из Merb, была лучшая производительность. Поскольку Merb появился после Rails, разработчики Merb имели возможность узнать, какие части Rails использовались чаще, и оптимизировать их производительность.

Мы хотели взять из Merb изменения, улучшающие производительность, и перенести их в Rails 3. В этом посте я расскажу о нескольких оптимизационных моментах, добавленных в Rails 3: уменьшение времени работы контроллера и (сильное) ускорение рендера коллекции партиалов.
Читать дальше →
Всего голосов 39: ↑34 и ↓5+29
Комментарии8

Tips & Tricks

Время на прочтение9 мин
Количество просмотров5K
Практически во всех языках программирования одну и ту же задачу можно решить несколькими способами. Однако какие-то из них лучше, какие-то хуже. Для некоторых требуется написать 10 строк кода, для других можно обойтись и одной.

Совершенствование кода и его оптимизация порой отнимает больше времени, чем заняло написание первой версии. Вы часто встречали новый для вас код или интересную реализацию, и говорили себе: «Оказывается, это можно сделать стандартными средствами, а я изобретал велосипед»? Лично я — да. Поэтому в этой статье я собрал свою коллекцию «велосипедов», и рассказал, как от них можно избавиться.

Методы массивов


Простой пример — допустим, у вас имеется массив объектов класса User. У них есть свойство activated, которое выставляется на 1, если юзер активировал свою учетную запись. Вам нужно проверить, все ли юзеры из массива активированы. Не берем во внимание ActiveRecord (там можно и по-другому сделать), моя цель — показать работу с массивами.

Способ первый, самый примитивный:
  1. @users = User.find(:all)
  2. activated_users = 0
  3. foreach user in @users
  4.   activated_users += 1 if user.activated == 1
  5. end
  6.  
  7. # если количество совпадает, значит все юзеры активированы
  8. activated_users == @users.size
Читать дальше
Всего голосов 76: ↑61 и ↓15+46
Комментарии45

Слияние Rails и Merb: Год спустя (часть 1 из 6)

Время на прочтение9 мин
Количество просмотров802
Шесть последовательных статей о слиянии Rails и Merb были опубликованы на www.engineyard.com с декабря 2009 до апреля 2010 года. Это первая из них.

Сегодня ровно год с того дня, как мы объявили о слиянии Rails и Merb. Тогда было много скептических отзывов относительно успешности этого предприятия. Самой распространенной ассоциацией у тех, кто слышал о наших планах, был единорог. На RailsConf в прошлом году, и DHH (Девид Хайнемайер Ханссон, автор Rails. — прим. перев.), и я упоминали единорога в своих докладах, вызывая смех относительно поставленных нами огромных ожиданий и явной невозможности выполнить их для версии 3.0.

Прошел год, настало время отразить то, как хорошо мы потрудились для достижения поставленных целей. На протяжении следующих нескольких дней я детально опишу прогресс, совершенный в сторону каждого из пунктов моего оригинального поста (http://www.engineyard.com/blog/2008/rails-and-merb-merge/).
Читать дальше →
Всего голосов 47: ↑44 и ↓3+41
Комментарии12

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

ActiveModel: пусть любой Ruby объект почувствует себя ActiveRecord

Время на прочтение8 мин
Количество просмотров4.6K
Yehuda Katz опубликовал эту запись в своем блоге 10 января 2010 года.

Огромное количество действительно хорошей функциональности Rails 2.3 скрыты в его монолитных компонентах. Я уже публиковал несколько сообщений о том, как мы упростили код маршрутизатора, диспетчера и некоторых частей ActionController, частично реорганизовав функциональность ActionPack. ActiveModel — еще один модуль, появившийся в Rails 3 после реорганизации полезной функциональности.
Читать дальше →
Всего голосов 28: ↑24 и ↓4+20
Комментарии19

First slice of rails

Время на прочтение9 мин
Количество просмотров3.1K
-О чём вы, Морфеус?

Количество фреймворков в мире растёт с пугающей скоростью. Тысячи их уже на данный момент. Благо, лучших из низ — не так много. Весь мир Web разработчиков просто подразделился на несколько групп, которые отадют предпочтение тому или иному фреймворку. Я не люблю тёрок и холиваров, так что бог с ним с тем, что лучше. Я лишь хочу поговорить с разработчиками ASP.NET о Ruby on Rails.

Зачем?

Расскажу свою историю. На ASP.NET я пишу с 2004 года. Знаю множество закоулков данной системы и знаю, что она сама по себе восхитительна. Я пережил 3 больших проекта на .NET и написал с 10 сайтов, которые сейчас продолжают стабильно работать. Если говорить о фрейворкнутости, то .NET меня удовлетворял всем. В самых больших проектах я находил решения самых сложных задач. И вот, через 6 лет мне просто захотелось посмотреть, а что же есть другого на рынке? Естественно, первым делом я наткнулся на RoR.

Смысл статьи в том, чтобы дать возможность интересующимся попробовать первый кусочек.
Всего голосов 82: ↑67 и ↓15+52
Комментарии64

Включение вывода лога в script/console

Время на прочтение1 мин
Количество просмотров747
Мне часто не хватает вывода SQL-лога, когда я вызываю метод find у ActiveRecord-модели в консоли. Если добавить следующие строчки в файл ~/.irbrc, то прямо в консоль будет выводиться лог:
Читать дальше →
Всего голосов 10: ↑6 и ↓4+2
Комментарии5

Новые подходы к валидации в Rails 3

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

Введение


Как вы уже знаете из поста тов. Yehuda Katz об ActiveModel абстракции, в Rails 3.0, ActiveRecord отныне содержит в себе некоторые аспекты ActiveModel, среди которых модули валидации.

И прежде чем мы начнем, давайте вспомним, какие методы валидации у нас уже есть:
  • validates_acceptance_of
  • validates_associated
  • validates_confirmation_of
  • validates_each
  • validates_exclusion_of
  • validates_format_of
  • validates_inclusion_of
  • validates_length_of
  • validates_numericality_of
  • validates_presence_of
  • validates_size_of
  • validates_uniqueness_of
Все они по прежнему в строю, но Rails 3 предлагает несколько новых отличных альтернатив.
Читать дальше →
Всего голосов 44: ↑39 и ↓5+34
Комментарии8

ActiveRecord Query Interface 3.0

Время на прочтение5 мин
Количество просмотров5.7K
В данном переводе рассмотрены нововведения в следующей версии ActiveRecrod для Ruby on Rails 3, а так-же описана часть модуля, которая будет исключена в пользу поддержки новых интерфейсов.

Что потеряет поддержку в Rails 3.1?


Следующие методы будут считаться устаревшими в релизе Rails 3.1 (но не Rails 3.0), и будут полностью исключены из Rails 3.2 (хотя можно будет установить специальный плагин для их дальнейшего использования). Имейте в виду это предупреждение, т.к. оно влечет за собой значительные изменения в коде.

В кратце, передача хеша options, содержащего :conditions, :include, :joins, :limit, :offset, :order, :select, :readonly, :group, :having, :from, :lock любому методу класса, предоставленного ActiveRecord’ом отныне считается устаревшим.

Рассмотрим это более подробно.
Читать дальше →
Всего голосов 32: ↑28 и ↓4+24
Комментарии38

Защита от XSS в Rails 3

Время на прочтение4 мин
Количество просмотров3.4K
Скорее всего вы уже знаете о том, что в Rails 3 по умолчанию добавлена защита от XSS атак. Это значит, что отныне вам никогда не придется вручную фильтровать ввод пользователя используя хелпер h, потому что рельсы всегда будут делать это за вас.

Тем не менее, всё не так просто, как кажется на первый взгяд. Рассмотрим следующий код:
Привет <strong>друзья</strong>!

<%= tag(:p, some_text) %>
<%= some_text %>

Читать дальше →
Всего голосов 31: ↑26 и ↓5+21
Комментарии21

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

Работа

Ruby on Rails
9 вакансий