[ главная ]   [ рейтинг статей ]   [ справочник радиолюбителя ]   [ новости мира ИТ ]



Ответов: 0
25-02-12 07:01







   Web - программирование
PHP


ASP






XML



CSS

SSI





   Программирование под ОС











   Web - технологии








   Базы Данных









   Графика






Данные




Web - технологии / Разное /

Быстрый старт - 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.





Комментарии

 Ваш комментарий к данному материалу будет интересен нам и нашим читателям!



Последние статьи: Web - технологии / Разное /

Вышла восьмая версия браузера Google Chrome
30-01-2011   

Компания Google выпустила восьмую версию интернет-браузера Chrome, сообщается в официальном блоге разработчиков браузера. Этот релиз браузера является стабильным и рекомендован для безопасной установки на компьютеры, работающие на базе ОС Windows, Mac OS X и Linux.

... подробнее

Кол. просмотров: общее - 7627 сегодня - 0

Канадские разработчики обещают миру дешевый спутниковый интернет
30-01-2011   

Канадский производитель спутников Microsat Systems Canada планирует запустить сеть из 78 небольших низкоорбитальных спутников, предназначенных для предоставления "дешевого и быстрого доступа в интернет". Очевидно, что новый проект направлен на конкуренцию с 3G и 4G-сетями, однако в отличие от последних канадский проект должен обеспечить глобальное покрытие и открыть доступ в интернет даже для труднодоступных районов.

... подробнее

Кол. просмотров: общее - 7067 сегодня - 0

E-mail подпись: мелочь, а приятно
23-02-2010   

В трудном и благородном деле под названием “Продвижение Интернет-проекта” существуют мелочи, о которых многие Интернет-предприниматели и Web-мастера даже не задумываются. Однако если уделить этим мелочам совсем немного времени, они день за днем, месяц за месяцем будут приводить на ваш сайт все новых и новых посетителей. Один из таких мелких и полезных зверьков — “e-mail подпись”... подробнее

Кол. просмотров: общее - 6782 сегодня - 0

Чем занимается веб-мастер?
23-02-2010   

Энциклопедия всемирной паутины - http://www.webopedia.com/ - определяет веб-мастера как человека, который управляет сайтом. В зависимости от размера сайта, веб-мастер может отвечать за следующее... подробнее

Кол. просмотров: общее - 6147 сегодня - 0

Композиция сайта
23-02-2010   

Целостность - в правильной композиции ни один из элементов нельзя изъять, добавить или передвинуть без ущерба для целого. Для нахождения целостной композиции обычно рассматривают будущее изображение как набор пятен - силуэтов отдельных элементов, которые компонуют на плоскости до достижения необходимого эффекта... подробнее

Кол. просмотров: общее - 6803 сегодня - 0



  WWW.COMPROG.RU - 2009-2012 | Designed and Powered by Zaipov Renat | Projects