Найти в Дзене

Практика Ruby №22(ActiveRecord, tux, rake)

Все материалы для конспекта взяты с rubyschool.us Чтобы не устанавливать гемы вручную:
создаем файл Gemfile, наполняем его: source "https://rubygems.org" gem 'sinatra' gem 'sqlite3' gem 'activerecord', gem 'sinatra-activerecord' gem 'sinatra-contrib' group :development do gem "tux" end такой синтаксис применяется когда gem нужен только для разработки group :development do gem "tux" end После чего в терминале запускаем: bundle install Создание базы данных: set :database, "sqlite3:barbershop.db" class Client < ActiveRecord::Base
end При проблеме с tux:
создать файл config.ru с содержимым: require './app' (название запускаемого файла rb) run Sinatra::Application Active record - гем для Ruby Rakefile (произошло от Makefile) - в этом файле прописываются команды
содержимое Rakefile: require './app' require 'sinatra/activerecord/rake' rake db:create_migration NAME=name_of migration - создает новую миграцию в db/migrate
rake db:migrate - применяет/выполняет созданную миграцию
rake db

Все материалы для конспекта взяты с rubyschool.us

Чтобы не устанавливать гемы вручную:
создаем файл Gemfile, наполняем его:

source "https://rubygems.org"
gem 'sinatra'
gem 'sqlite3'
gem 'activerecord',
gem 'sinatra-activerecord'
gem 'sinatra-contrib'
group :development do
gem "tux"
end

такой синтаксис применяется когда gem нужен только для разработки

group :development do
gem "tux"
end

После чего в терминале запускаем: bundle install

Создание базы данных:

set :database, "sqlite3:barbershop.db"
class Client < ActiveRecord::Base
end

При проблеме с tux:
создать файл
config.ru с содержимым:

require './app' (название запускаемого файла rb)
run Sinatra::Application

Active record - гем для Ruby

Rakefile (произошло от Makefile) - в этом файле прописываются команды
содержимое Rakefile:

require './app'
require 'sinatra/activerecord/rake'

rake db:create_migration NAME=name_of migration - создает новую миграцию в db/migrate
rake db:migrate - применяет/выполняет созданную миграцию
rake db:rollback - возврат к предыдущей миграции

При выполнении 1 команды создается новый каталог db/migrate, в котором будет создан файл с расширением rb и прописан метод change:

create_table :client do |t|
t.text :name # в таблице client создается поле с именем name с типом текст
t.text :phone # аналогично с предыдущем
t.text :datestamp # аналогично с предыдущем
t.text :barber # аналогично с предыдущем
t.text :color # аналогично с предыдущем
t.timestamps # добавляет в таблицу 2 поля "created at + updated_at"
end

Так же есть метод .string = varchar(255)
ID будет создан автоматически

2 команда заполнит бд

Так настраивается mapping(отражение) (ORM - Object Relational Mapper)

class CreateBarbers < ActiveRecord::Migration[6.0]
def change
create_table :barbers do |t|
t.text :name
t.timestamps
end
Barber.create :name => 'Leonard'
Barber.create :name => 'Govard'
Barber.create :name => 'Berny'
end
end

Barber.create - создает объект в базе данных
b = Barber.new - создает объект в памяти
чтобы сохранить его в базу данных нужно будет выполнить :
b.save

Для файла программы:
определяем переменную значение которой будет:
@barbers = Barber.all (order "created_at Desk")
для файлов представлений, ничего не изменилось
<% @barbers %>
<% end %>

Подробней про ActiveRecord можно почитать здесь.

Записать в бд:
Message.create :name=>... , :message=>...