Ror - The Beginning

21
 Где искать информацию?  Google  http://ruby.railstutorial.org  http://guides.rubyonrails.org  http://apidock.com  http://api.rubyonrails.org  подергать соседа ;)

Transcript of Ror - The Beginning

   

Где искать информацию?

●  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

   

ORM → ActiveRecord

   

Создание первой модели

Генераторы● 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

   

Belongs_to

   

Has_one

   

Has_many

   

Has_many :through

   

Has_one :through

   

Has_and_belongs_to_many

   

Polymorphic association