Tagged with rails
Сегодня я хочу представить свой Rails-плагин, позволяющий добавить в приложение функциональность вики (не просто расширение моделей, а полноценную вики которая бы сразу работала)
Я обнаружил то, что для такой, казалось бы, стандартной задачи в Rails нет полноценного готового решения, которое бы легко интегрировалось с существующим приложением. В связи с этим был написан свой.
Основными критериями при разработке были:
- Возможность быстрой интеграции в приложение.
- Хорошая расширяемость.
- Отсутствие чужого кода (в смысле кода плагина) в приложении, к чему часто приводит использование генераторов. В этом смысле я пытался равняться на Authlogic.
То, что получилось представляет из себя что-то среднее между генератором (что обеспечивает хорошую расширяемость и модифицируемость) и engine'ом (чтобы можно было легко обновлять его).
Читать дальше »
Как известно, тестирование является одной из важнейших составляющих разработки приложений на основе Ruby on Rails. Поддержка тестирования была включена в Rails с самого начала, для этого использовалась библиотека Test::Unit. Однако, со временем, появилось много альтернативных средств для тестирования в Rails-приложениях.
В этой заметке я проведу небольшой обзор средств, используемых в настоящий момент для тестирования приложений на базе Ruby on Rails. Я не ставлю себе целью выбрать “лучшее” – я считаю, что этот выбор должен делать каждый сам, однако я попытаюсь показать различные варианты – чтобы было из чего выбирать.
Читать дальше »
Я не люблю писать одинаковый код много раз, тем более тривиальный. Я не люблю писать админки для Rails-приложений, потому что они состоят по большей части как раз из такого кода. И я не люблю генераторы, создающие кучу кода, который необходимо менять только в некоторых местах (поэтому для аутентификации я использую AuthLogic, а не restful_authentication).
И поэтому я был очень рад обнаружить замечательный проект: Typus. Это плагин для Rails, позволяющий значительно упростить процесс создания админки для приложений.
Читать дальше »
Достаточно часто в веб-приложениях на Rails требуется выполнять периодические задачи. В частности, наиболее распространенной такой задачей является удаление устаревших сессий. Другими могут быть какие-либо задачи обновления данных и т.п.
Есть несколько подходов для реализации таких задач, наверное, одним из наиболее удобных является использование плагина BackgrounDrb, значительно упрощающего реализацию.
Здесь я кратко опишу процесс установки и конфигурирования плагина для выполнения какой-либо периодической задачи.
Читать дальше »
mod_rails (также известен как Phusion Passenger) - модуль для Apache, позволяющий осуществлять максимально простое размещение Rails-приложений. Установка модуля занимает буквально несколько минут, после этого приложение может быть размещено практически без осуществления какой-либо настройки Apache, буквально одной строчкой конфигурации.
Установка
Самый простой способ установки mod_rails - через использование Ruby Gems. Для установки необходимо выполнить из под рута две команды:
gem install passenger
passenger-install-apache2-module
И далее следовать инструкциям интерактивной программы инсталляции.
Размещение приложения
Для размещения приложения достаточно в конфигурационном файле Apache создать виртуальный хост и указать в качестве DocumentRoot директорию public Rails-приложения. Например:
<VirtualHost *:80>
ServerName www.mycook.com
DocumentRoot /webapps/mycook/public
</VirtualHost>
Читать дальше »
Здесь я кратко опишу основные ошибки, которые могут возникнуть при размещении Rails-приложения на fcgi и методы их решения.
Основные симптомы нижеописанных ошибок:
- Вместо приложения, отображается:
- Содержимое файла dispatch.fcgi
- 505 Rails application failed to start
- В логе ошибок появляются строки вида:
- [warn] mod_fcgid: Read data error, fastcgi server has close connection
- [error] [client xxx.xxx.xxx.xxx] Premature end of script headers: dispatch.fcgi
- Загрузка каждой страницы приложения занимает несколько секунд
Читать дальше »