это наш химический дом для печальных жителей Земли

страничное кэширование мультидоменного сайта на Rails 3+Nginx

«Наиболее эффективными считаются те запросы, которые никогда не выдаются», ― говорит Сэм Руби. Страничное кэширование с этой точки зрения не максимально эффективно, но близко к максимуму т.к. страница загруженная полностью из кэша не делает ни одного запроса к БД. Однако, в случае если сайт имеет поддомены, например, для определения локали (en.site.com, ru.site.com), кэш страницы в одной локале будет затираться кэшом в другой. В этой статье мой опыт борьбы с этой проблемой.
читать полностью →

хлебные крошки на rails. breadcrumbs_on_rails

Хлебные крошки для RoR-приложения уже давно не нужно писать самому. Уже не менее 2-х лет существует как минимум один gem для быстрой реализации хлебных крошек ― breadcrumbs_on_rails. Ниже я только опишу свой опыт работы с этим гемом, который мало чем отличается от описанного на офстранице breadcrumbs_on_rails.
читать полностью →

автоматическое подключение декоратора от Draper в rails 3

Если использовать декоратор Draper, то для использования методов модели описанных в декораторе приходиться использовать явное подключение декоратора через YourModelDecorator.new() или YourModelDecorator.decorate(). Британскими учеными установлено, что явное подключение декоратора утомляет и вызывает сонливость.
читать полностью →

rails 3 + декоратор Draper

Захламлять модели своими методами в Rails-приложении это говнокод, это наверное знает каждый, в отличие от меня, однако, наличие дополнительных методов может существенно облегчить представление. Решить эту дилемму помогают декораторы. Ниже описан мой опыт знакомства с декораторами на примере гема Draper.
читать полностью →

bing-переводчик на ruby

Уже давно гугл отказался предоставлять API к своему переводчику бесплатно, а у Яндекса, насколько я знаю, поддерживается еще мало языков и еще нет публичных API. Я знаю только 1 бесплатный аналог переводчику гугла – Bing Translator. В этой статье показана интеграция переводчика от Microsoft в Rails-приложение.
читать полностью →

areyouahuman на rails 3. альтернатива обычной капче

Современная капча под давлением программистов роботов-распознователей капчи мутировала уже во что-то непонятное, гугловскую капчу, я например, обновляю раз по 5 перед тем как смогу прочитать что там написано. Короче время привычной капчи заканчивается. Наступает время альтернативной. Например, есть такая штука как AreYouAHuman. Ниже будет показано как ее интегрировать в Rails 3 на примере Devise.
читать полностью →

sitemap на Rails 3. rails-sitemap

Писать rake-файл, который сделает sitemap самому уже давно не модно т.к. существует 2 вагона готовых гемов для этого. Ниже я немного опишу гем rails-sitemap и самое главное покажу как его заставить делать несколько карт, например, для ситуации когда у сайта локация определяется поддоменом (напр.: ru.site.com и en.site.com).
читать полностью →

Яндекс.Фотки+Carrierwave на Rails 3

Использовать свой сервер для хранения больших фото порой бывает дорого, а если вы хотите еще и хранить разные версии одного и того же изображения (например: иконка, средний размер и оригинал), то часто проделывание стольких преобразований над каждым файлом требует большого количества процессорного времени. Яндекс.Фотки предоставляет API, которые, конечно не идеальны (в смысле я бы расширил их функционал), однако, могут решить вышеуказанные проблемы. Ниже будет описано как интегрировать Яндекс.Фотки в Rails 3 через Carrierwave.
читать полностью →

ROR 3. Devise. Управление пользователями

Сейчас мало таких сайтов, где не нужны были бы пользователи, точнее модель пользователей. Раньше, я как дурак, писал эту модель вручную, иногда, конечно, иначе и нельзя было поступить. А недавно я открыл для себя гем Devise для Rails, который в большинстве случаев избавляет от необходимости прописывать логику управления пользователями самому.
читать полностью →

собственная конфигурация (свои опции) rails-приложения

В названии я имею ввиду не настройку Rails, которая в config/application.rb и некоторых других файлах, а место, где следует хранить конфигурацию приложения с опциями типа ‘количество новостей на странице’ или ‘количество символов в отрывке текста на странице списка новостей’ итд, короче говоря, свои собственные конкретные для данного приложения настройки.
читать полностью →