Создание Rails приложения с помощью Streamlined

Streamlined - надстройка над rails для быстрого создания интерфейса по работе с таблицами.

Установка Streamlined

1. скачиваем отсюда: http://www.internet-technologies.ru/?url=http%3A%2F%2Fstreamlined.relevancellc.com%2Fpages%2Fdownload gem-пакет http://www.internet-technologies.ru/?url=http%3A%2F%2Fstreamlined.relevancellc.com%2Fstreamlined_generator-0.0.2.gem

2. устанавливаем gem:

gem install streamlined

Создание приложения

1. создаем БД

mysqladmin create stream_development

2. генерируем приложение:

rails stream

появится папка stream с приложением

3. прописываем настройки для БД stream/config/database.yml:

username: ****
password: ****

для stream_development БД.

4. генерируем модели (находясь в папке stream)

ruby script/generate model user
ruby script/generate model division

редактируем миграционные скрипты: db/migrate/001_create_users.rb db/migrate/002_create_divisions.rb

добавляем поля "name"

убираем коммент у создания поля:

# t.column :name, :string

5. запускаем миграцию (находясь в папке stream)

rake magrate

- создаются таблицы

6. генерируем Streamlined приложение для указанных таблиц:

script/generate streamlined user division

соглашаемся на перезапись index.html

7. запускаем веб-сервер

ruby script/server

8. запускаем браузер на http://localhost:3000/ указываем http://localhost:3000/users видим редактирование пользователей слева видим меню указваем на http://localhost:3000/divisions/ видим редактирование отделов

можно поработать - работает русский текст - utf8.

более того - работает фильтр.

Миграция

если надо добавить новое поле к таблице, например "телефон" для сотрудника:

создаем скрипт миграции:

ruby script/generate migration user_add_phone

идем на редактирование db/migrate/003_user_add_phone.rb

добавляем

add_column "users", "phone", :string

в метод self.up

добавляем "де-миграцию:

remove_column "users", "phone"

в метод self.down

получается:

class UserAddPhone < ActiveRecord::Migration
def self.up
add_column "users", "phone", :string
end

def self.down
remove_column "users", "phone"
end
end

переходим в папку stream, запускаем миграцию:

rake migrate

лог выдаст информацию что была добавлена колонка.

теперь надо перезапустить веб-сервер: Ctrl+C на консоли запущенного веб-сервера

также надо перегенерировать streamlined для таблицы user:

ruby script/generate streamlined user

он спросит про перезапись измененных файлов но "_manage.rhtml" переписывать не надо соглашаться, т.к. тогда исчезнет из левого меню раздел "отделы"

т.е. будет переписан только файл формы для сотрудника: app/views/users/_form.rhtml

и опять запуск веб-сервера:

ruby script/server

Замечания по миграции

Отметим, что при использовании миграции появляется системная таблица "schema_info" в которой хранится последняя версия миграции.