Меню
- Главная
- Скрипты
- Шаблоны сайта
- Книги
- Фон для сайта
- Анимированные картинки
- Лохотроны и кидалово в интернете
- Статьи
Партнерские программы:
- Заработок на соцсетях
- разные


Реклама




Информация
Обо всех новых добавлениях на сайт вы можете узнать подписавшись в
_________
Яндекс.Метрика


 
Быстрый старт - Rails + SQLite.

Быстрый старт - Rails + SQLite.


В данном туториале сделаем простое DB web-приложение, на базе SQLite.

Предполагаем, что Rails уже установлен (также средой является win32).


Устанавливаем SQLite


Я использую SQLite версии 3.

SQLite это "легкая" реализация SQL базы данных, она работает с файлом напрямую.

Для работы с SQLite необходимы 2 файла: sqlite3.exe - для управления файлом (создание/удаление таблиц и т.д.), и сам "движок" для работы с API - sqlite3.dll.

Скачиваем файлы отсюда:

* sqlite-3_2_7.zip
* sqlitedll-3_2_7.zip

Разархивируем, и размещаем файлы в "видимых" папках, например, я записал эти (sqlite3.dll, sqlite3.exe) файлы в C:rubybin папку.


Установка Ruby адаптера для работы с SQLite


Для работы с SQLite из Ruby необходим соотв. интерфейс, его можно взять тут (A Ruby interface for the SQLite database engine). Из списка файлов, выбираем sqlite3-ruby-1.1.0-mswin32.gem, скачивем его, и далее находясь в папке, где лежит скаченный файл sqlite3-ruby-1.1.0-mswin32.gem, набираем


gem install sqlite3


он должен найти локальный файл, и установить Ruby адаптер для SQLite версии 3. В более простом варианте (если машина подключена к интернет, и нет проблем с прокси), можно просто набрать


gem install sqlite3


и gem сам все скачает и установит.


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


Генерируем приложение

В папке, где хранятся наши rails приложения (например, C:rails), набираем в командной строке:


rails test


создастся папка test и в ней сгенерируется структура папок для rails приложения.


Настраиваем и создаем БД


Заходим в папку test/config, находим файл database.yml - в нем хранится информаци об адаптере БД который используется, и соотв. настройки.

Видим
, настройки для режима development:


development:
adapter: mysql
database: test_development
socket: /path/to/your/mysql.sock
username: root


Меняем адаптер на SQLite - т.к. версия 3я, то адаптер называется sqlite3, далее для этого адаптера один параметр - dbfile - путь к файлу. Наш файл будет лежать в папке db/ (относительно корня нашего Rails приложения test/), и называться test.db (мы создадим его немного позже).

Получается
database.yml файл:


development:
adapter: sqlite3
dbfile: db/test.db


Надо создать файл БД для SQLite. Для этого заходим в папку test/db/. Создаем файл db.sql - в нем будем хранить sql для создания нашей БД, пусть это будет простая таблица для хранения статей - ид, заголовок, текст (файл db.sql):


drop table articles;
create table articles(
id integer primary key,
title varchar(255),
text varchar(1024)
);


Теперь запускаем:


sqlite3 -help


видим ключик -init filename read/process named file, и соотв. получается запрос, где последним указан файл:


C:railstestdb>sqlite3 -init db.sql test.db


таблица должна быть добавлена (можно сделать bat файл, который будет делать это обновление), проверяем внутри sqlite>, набираем .tables. - видим нашу таблицу.

выходим из sqlite> - .q

Замечаем, что появился файли test.db, размером 2048 байт. Все, таблица есть, теперь надо сделать модель и контроллер в Rails для работы с ней.


Создаем модель/контроллер


Модель - находясь в папке test набираем:


ruby script/generate model Article


(заметим, что мы просто запускаем Ruby скрипт generate, с параметрами), результатом будет модель-класс, который работает с таблицей articles.

Контроллер
- находясь в папке test набираем:


ruby script/generate controller Article


создается класс-контроллер, который, судя по своему названию, будет "откликаться" на URL запросы, вида 'http://localhost:3000/article' (когда будет запущен веб-сервер).

Теперь надо связать контроллер с моделью, для этого заходим в папку testappcontrollers, находим файл article_controller.rb (это контроллер, который мы недавно сгенерировали), открываем:


class ArticleController < ApplicationController
end


видим класс ArticleController, который пронаследован от ApplicationController. Добавляем scaffold (это команда для автоматической работы с базовыми операциями над БД - список, добавление, изменение, удаление, просмотр), файл article_controller.rb:


class ArticleController < ApplicationController
scaffold :article
end



Запускаем веб сервер


Находясь в папке test, набираем:


ruby script/server


- запускается WEBRick веб-сервер, по умолчанию с utf8 кодировкой, и на 3000 порту (параметры запуска можно увидеть по команде ruby script/server -help)


Смотрим результат


Запускаем Firefox, набираем в строке url:

http://localhost:3000/article

Где:

* 3000 - это порт, на котором запустился веб-сервер WEBRick
* article - это контроллер, который мы запрашиваем.

И видим интерфейс для работы с таблице articles (по умолчанию):

* просмотр списка
* добавление новой записи
* просмотр/изменение/удаление записи

Чтобы увидеть все эти операции в коде, есть следующий генератор:


ruby script/generate scaffold Article Article


(надо запустить его находясь в папке test), и нажать "y", на подтверждение перезаписи файлов. В данном примере, первый параметр - название модели, второй параметр - название контроллера.

После данной генерации контроллер test/app/controllers/article_controller.rb, "обрастет" соответсвующими методами для работы с таблицей. Также в папке testappviewsarticle будут созданы rhtml шаблоны, которые используется при работе.


Меняем урл по умолчанию


Единственное неудобство, это то, что надо прописывать /article при первоначальном запросе. Это решается редактированием testconfigroutes.rb файла.

Надо удалить файл public/index.html, и добавить строку:


map.connect '', :controller => "article"


в routes.rb файл.

Теперь по URL'у http://localhost:3000/ открывается контроллер article.


Назад
Автор: нет данных
Источник: ror2ru.elementalcms.org