Создание 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" в которой хранится последняя версия миграции.