Upload
ruslangatiyatov
View
810
Download
2
Embed Size (px)
Citation preview
Где искать информацию?
● Google● http://ruby.railstutorial.org● http://guides.rubyonrails.org● http://apidock.com● http://api.rubyonrails.org● подергать соседа ;)
RoR - Начало
● Введение в принципы MVC● Проектирование (Модели)● Конфигурирование (БД)● Создание первой модели ● Миграции● Контроллер● Отображение● Связи между моделями
MVC
● Представление (V) и поведение (C) зависят от модели (M).
● Модель не зависит ни от представления, ни от поведения.
Проектирование (Модели)
● Определение таблиц, которые должна содержать база данных.
● Определение необходимых в таблице полей.
● Задание первичного ключа для каждой таблицы.
● Определение связей между таблицами.
● Обновление структуры базы данных.
● Добавление данных и создание других объектов базы данных.
Конфигурирование БД
● Sqlite (http://www.sqlite.org)● MySQL (http://www.mysql.com)● Postgre (http://www.postgresql.org)● MongoDB (http://www.mongodb.org)● др.
config/database.yml
Sqlite● adapter: sqlite3● database: db/database_name.sqlite3
Mysql● adapter: mysql● encoding: utf8● database: database_name● username: root ● password: root
Создание первой модели
Генераторы● rails generate model● rails generate migration● rails generate scaffold
Rake таски● rake db:migrate● rake db:rollback● rake db:migrate VERSION=version● rake db:seed
Миграции – это классы наследованные от ActiveRecord::Migration. Миграции нужны для изменения структуры таблиц БД.
Миграции
Работа с таблицами
● Операции с таблицами
create_table, drop_table, change_table
● Операции с колонками:add_column, change_column, change_column_default, rename_column, remove_column, add_index, remove_index
● Типы полей:
:primary_key, :string, :text, :integer, :float, :decimal, :datetime, :timestamp, :time, :date, :binary, :boolean
Rake таски
● rake db:migrate● rake db:migrate:rollback● rake db:migrate:redo● rake db:migrate:rollback STEP=3● rake db:migrate:redo STEP=3● rake db:migrate:up VERSION=xxxxxxxxxxxxx● rake db:migrate:down VERSION=xxxxxxxxxxxx
Создание seeds
Файл db/seeds.rb
10.times do |i|Product.create( :name => 'red ball #{i}',
:price => i ** 2)end
Накатываем с использованием таска rake db:seed
Основы работы с моделями
● where● select● group● order● limit● offset● joins● includes● lock● readonly● from● having
● last● first● find● exists?● count● average● minimum● maximum● sum
Связи между моделями
● belongs_to● has_one● has_many● has_many :through● has_one :through● has_and_belongs_to_many