Rails + Application Template = ext-rails-template
-
19 февраля 2010 12:29
-
Комментарии
Все наверное видели каркас приложения созданный при помощи команды rails. Лучше чем ничего, но до приложения с минимальным функционалом его надо “точить” и “точить”. Как правило сразу хочется чтобы разрабатываемое приложение имело более-менее привлекательный внешний вид, позволяло ограничить доступ к приватным ресурсам приложения (если есть планы хостить прилжение за пределами локальной сети), имело панель управления приложением (админку) и т.п. Создание такой функциональности, не относящейся напрямую к идеи самого приложения, отнимает много сил и времени.
К счастью в Rails 2.3 появилась поддержка шаблонов приложений (application templates) которые позволяют нарастить каркас Rails приложение после создания. Но хотя с момента её выхода прошло немало времени эта функциональность не пользуется особым спросом (покрайней мере поискав в сети примеры шаблонов приложений я нашел их не больше десятка, а их функциональность оставляет желать лучшего).
Мой проект ext-rails-template это попытка изменить существующую ситуацию и показать что действительно можно сделать что-то полезное используя эту технологию.
Создание нового Rails приложения
Создание нового приложение на основе шаблона ext-rails-template происходит при помощи всем известной команды “rails” с указанием пути к используемому шаблону приложения.
rails <you application name> -m http://github.com/maxd/ext-rails-template/raw/0.0.1/ext_rails_template.rb
После того как команда отработает будет создано новое Rails приложение и git репозиторий в который будут добавлены его исходники.
Остаётся установить недостающие gem-ы
rake gems:install
и инициализировать базу данных
rake db:create
rake db:migrate
Приложение готово к запуску. Запускаем веб-сервер
script/server
и видим главную страницу приложения
Описание функциональности
Я сознательно не буду останавиливаться на детальном обзоре имеющихся возможностей. Код приложения получился довольно простой и я думаю при желании он скажет больше чем я смогу написать в этой небольшой статье. Итак, что же умеет созданное приложение?
Во первых, как вы наверное уже заметили, главная страница отличается от главной страницы создаваемой командой “rails” и имеет двух-колоночную разметку с заголовком и футером. Отображением второй колонки в которой находится сайдбар можно управлять.
В качестве движка для генерации HTML разметки используется HAML, а SASS для генерации CSS. Я добавил несколько стилей чтобы сделать более привлекательным внешний вид форм, за создание которых отвечает плагин formtastic, и таблиц созданных при помощи плагина table_helper.
CSS стили я постарался раздить на две группы:
- стили которые отвечают за внешний вид элементов приложения. Они находятся в директории public/stylesheets/sass/themes.
- стили которые отвечают за расположение (layout) основных элементов приложения. Они находятся в директории public/stylesheets/sass.
Главное меню и меню пользователя (что находится в правом верхнем углу) можно настроить по своему усмотрению. За их создание отвечает плагин simple-navigation, а конфигурационные файлы находятся в директории config/navigation.
В приложение проинтегрированы механизмы авторизации и аутентификации построеные на базе плагинов authlogic и acl9. По умолчанию создаётся один аккаунт с правами администратора (login: admin, password: admin)
Панель управления приложением имеет две вкладки. Первая вкладка “Dashboard” предназначается для вывода информации которая может быть важна для администратора приложения. Вторая “Accounts” содержит список зарегистрированных аккаунтов и небольшой набор действий для управления ими. Пока на этом возможности панели управления заканчиваются.
Ещё стоит добавить что для функциональности связанной с авторизацией и аутентификацией имеются функциональные тесты созданные при помощи cucumber.
Заключение
Я надеюсь что кому-нибудь этот шаблон окажется полезным. Покрайней мере я его точно буду использовать и развивать. И скорее всего в будущем приведу несколько своих проектов созданных с его помощью. Добавлю что если у вас возникли какие-то пожелания по его улучшению или вы найдёте какие нибудь ошибки - пишите.
в формате RSS. Присоединяйся!
Комментарии
Добавить новый комментарий
Вы можете использовать следующие BBCode теги в комментариях:
| BBCode тег | Результат |
|---|---|
| [b]Жирный текст[/b] | Жирный текст |
| [i]Курсив[/i] | Курсив |
| [u]Подчёркнутый текст[/u] | Подчёркнутый текст |
| [url]http://example.com[/url] | http://example.com |
| [url=http://example.com]Example[/url] | Example |
|
[code]for message in @messages puts message.name end[/code] |
|
|
[quote] IE6 must die! [/quote] |
IE6 must die! |


При попытке сделать rails . -m http://github.com/maxd/ext-rails-template/raw/0.0.1/ext_rails_template.rb оно вышло на уровень выше и попыталось добавить все мои проеты в 1 репозиторий
Попытался воспроизвести проблему.
1. Создал директорию ~/Temp/000
2. В ней запустил rails test_app и создал каркас приложения
3. Перешел в директорию с приложением и запстил rails . -m http://github.com/maxd/ext-rails-template/raw/0.0.1/ext_rails_template.rb
Скрипт отработал и видно сообщение о том что он положил в репозиторий только файлы из директории ~/Temp/000/test_app
Попробуйте воспроизвести проблему используя описанный выше сценарий.
P.S.
Какая у вас ОС и версия rails?
Есть ещё способ применить шаблон к существующему приложению. Надо вызвать команду:
Но и он в моём тестовом окружении добавил в репозитории только файлы проекта в котором я находился.