Programowanie w Ruby



Podobne dokumenty
Programowanie w Ruby

Laboratorium nr 3 Podstawy Ruby on Rails

Programowanie w Ruby

Programowanie w Ruby

Testowanie aplikacji. Kurs języka Ruby

Ruby i Ruby on Rails. Mateusz Drożdżyński

Programowanie w Ruby

Wykład 4. SQL praca z tabelami 1

Programowanie obiektowe

Wdrożenie modułu płatności eservice. dla systemu Zen Cart

Kurs języka Ruby. Ruby on Rails ActionPack

Wdrożenie modułu płatności eservice. dla systemu oscommerce 2.3.x

Paweł Cieśla. Dokumentacja projektu

D D L S Q L. Co to jest DDL SQL i jakie s jego ą podstawowe polecenia?

EPI: Interfejs Graczny Podstawy Ruby on Rails

Autor: Joanna Karwowska

Projektowanie systemów baz danych

Bazy danych. Wykład IV SQL - wprowadzenie. Copyrights by Arkadiusz Rzucidło 1

Wykład 5: PHP: praca z bazą danych MySQL

Baza danych sql. 1. Wprowadzenie. 2. Repozytaria generyczne

Język SQL, zajęcia nr 1

Wdrożenie modułu płatności eservice. dla systemu Magento

Baza danych. Modele danych

PHP: bazy danych, SQL, AJAX i JSON

Zaawansowany kurs języka Python

Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik

Założenia do ćwiczeń: SQL Server UWM Express Edition: \SQLEXPRESS. Zapoznaj się ze sposobami użycia narzędzia T SQL z wiersza poleceń.

Bazy danych. Bazy danych. Podstawy języka SQL. Dr inż. Paweł Kasprowski.

Microsoft Access materiały pomocnicze do ćwiczeń cz. 1

Projektowanie aplikacji w modelu MVC opartej o framework CodeIgniter

Podstawowe pojęcia dotyczące relacyjnych baz danych. mgr inż. Krzysztof Szałajko

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

Oracle11g: Wprowadzenie do SQL

Wykład I. Wprowadzenie do baz danych

Ref. 7 - Język SQL - polecenia DDL i DML

Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych

Database Connectivity

Poznaj ASP.NET MVC. Kamil Cieślak Microsoft Student Partner

Tworzenie tabel. Bazy danych - laboratorium, Hanna Kleban 1

Ruby on Rails. Supersilnik WWW. Łukasz Włodarczyk

Programowanie obiektowe

Automatyka i Robotyka ROK III TEMAT: TWORZENIE I ZARZĄDZANIE INTERNETOWĄ BAZĄ DANYCH

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny technologiczny Politechnika Śląska

WPROWADZENIE DO BAZ DANYCH

Podstawowe pakiety komputerowe wykorzystywane w zarządzaniu przedsiębiorstwem. dr Jakub Boratyński. pok. A38

Wdrożenie modułu płatności eservice. dla systemu Gekosale 1.4

Przepis 1. Edycja formularza w miejscu 13. Rails sprawia, że edycja w miejscu jest prosta dzięki kontrolce script.aculo.us

Tworzenie aplikacji bazodanowych

Bazy danych - wykład wstępny

Plan. Raport. Tworzenie raportu z kreatora (1/3)

Cele. Definiowanie wyzwalaczy

EPI: Interfejs Graficzny Wykład nr 4 Podstawy frameworku Rails

INTERNETOWE BAZY DANYCH materiały pomocnicze - wykład X

Zaawansowane Techniki Bazodanowe

Wprowadzenie do JDBC z wykorzystaniem bazy H2

Bazy Danych i Usługi Sieciowe

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny technologiczny Politechnika Śląska

Backend Administratora

PLAN WYKŁADU BAZY DANYCH PODSTAWOWE KWESTIE BEZPIECZEŃSTWA OGRANICZENIA DOSTĘPU DO DANYCH

Instytut Mechaniki i Inżynierii Obliczeniowej fb.com/groups/bazydanychmt/

Head First Ruby on Rails. Edycja polska

Laboratorium nr 4. Temat: SQL część II. Polecenia DML

Obiektowy PHP. Czym jest obiekt? Definicja klasy. Składowe klasy pola i metody

Wprowadzenie do projektowania i wykorzystania baz danych Relacje

Języki programowania wysokiego poziomu. PHP cz.4. Bazy danych

Wprowadzenie do BD Operacje na bazie i tabelach Co poza zapytaniami? Algebra relacji. Bazy Danych i Systemy informacyjne Wykład 2.

3 Przygotowali: mgr inż. Barbara Łukawska, mgr inż. Maciej Lasota

Programowanie MSQL. show databases; - pokazanie jakie bazy danych są dostępne na koncie

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

Bazy danych dla producenta mebli tapicerowanych. Bartosz Janiak Marcin Sikora Wrocław r.

Bazy Danych i Usługi Sieciowe

Programowanie obiektowe

NARZĘDZIA WIZUALIZACJI

Programowanie obiektowe

Technologia informacyjna

Baza danych sql. 1. Wprowadzenie

Wykład 5. SQL praca z tabelami 2

BAZY DANYCH wprowadzenie. Opracował: dr inż. Piotr Suchomski

Projektowanie bazy danych. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Podstawowe wykorzystanie Hibernate

Pojęcie systemu baz danych

CREATE DATABASE ksiegarnia_internetowa DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

Internetowe bazy danych

Język SQL. Rozdział 9. Język definiowania danych DDL, część 2.

Podstawowe informacje o bazach danych. Technologie Informacyjne

Bazy danych. Dr inż. Paweł Kasprowski

Systemy baz danych. mgr inż. Sylwia Glińska

Informatyka I BAZY DANYCH. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2017

Literatura: SQL Ćwiczenia praktyczne Autor: Marcin Lis Wydawnictwo: Helion. Autor: Joanna Karwowska

Bazy danych i usługi sieciowe

Microsoft.NET: ASP.NET MVC + Entity Framework (Code First)

Tworzenie baz danych i tabel

DECLARE VARIABLE zmienna1 typ danych; BEGIN

Laboratorium 7 Blog: dodawanie i edycja wpisów

Programowanie obiektowe

Bazy danych Ćwiczenia projektowe

ym4r Google Maps w Ruby on Rails

1. Połączenie z bazą danych. W wybranym edytorze tworzymy plik sqltest.py i umieszczamy w nim poniższy kod. #!/usr/bin/python3 import sqlite3

LK1: Wprowadzenie do MS Access Zakładanie bazy danych i tworzenie interfejsu użytkownika

Transkrypt:

Programowanie w Ruby Wykład 11 Marcin Młotkowski 19 grudnia 2012

Plan wykładu Modele danych i bazy danych Modele danych Migracje Bazy danych w Railsach Rusztowania Walidacja modeli

Modele danych Definicje danych Odczyt i zapis danych Kontrola poprawności danych Migracje danych

ORM object-relational mapping Dane są reprezentowane i przetwarzane jako obiekty Dane są przechowywane w relacyjnych bazach danych

Moduł ActiveRecord Definiuje model danych (tj. jego strukturę, związki między danymi, warunki poprawności) Zapewnia obiektowe tworzenie i dostęp do danych (bez udziału SQL a) Dba o zgodność modelu ze strukturą w bazie danych w przypadku migracji

Konwencje Model Product Klasa Product w pliku app/models/product.rb W bazie danych jest tabela Products Plik(i) migracyjny(e) * create products.rb

Plan wykładu Modele danych i bazy danych Modele danych Migracje Bazy danych w Railsach Rusztowania Walidacja modeli

Migracje danych Zmiana struktury danych Na początku struktura jest pusta, więc trzeba wykonać migrację (zerową) Można cofać zmiany w strukturze bazy danych

Szybka migracja W wierszu poleceń ruby script/generate model product

Plik migracyjny * create product.rb class CreateProducts < ActiveRecord::Migration def self.up end def self.down end end

Metoda self.up create_table :products do t t.column :przedmiot, :string, :null => false t.column :opis :text t.column :cena, :decimal, :precision => 10, :scale => 2, :default => 0.01 t.timestamps end

Klucz główny Rails często potrzebuje klucza głównego Domyślnie zawsze dodawane jest pole id będące kluczem

Metoda self.down def self.down drop table :products end

Kolejne migracje $ ruby script/generate migration add column

Szkielet kolejnej migracji class AddColumn < ActiveRecord::Migration def self.up end def self.down end end

Implementacja migracji def self.up add columm :products, :qty, :integer end def self.down remove column :products, :qty end

Uruchomienie migracji $ rake db:migrate

Uruchomienie migracji $ rake db:migrate $ rake db:migrate VERSION=5

Obsługiwane silniki BD MySQL Sqlite DB2 Oracle

Konfiguracja config/database.yml development: adapter: sqlite3 database: db/development.sqlite3 pool: 5 timeout: 5000 test:... production:...

Początkowa konfiguracja $ rails demo --database=sqlite3

Obsługa danych poprzez przeglądarkę zbudowanie kontrolera ruby script/generate controller admin

Obsługa danych poprzez przeglądarkę zbudowanie kontrolera ruby script/generate controller admin W pliku app/controllers/admin controller.rb trzeba dopisać linijkę class AdminController < ApplicationController scaffold :product end

Uwaga W wersjach Railsów 2.* nie zadziała!

Plan wykładu Modele danych i bazy danych Modele danych Migracje Bazy danych w Railsach Rusztowania Walidacja modeli

Rusztowanie (scaffold) Co to jest rusztowanie wygenerowany automatycznie szkielet służący do operowania na modelu.

Rails wersja 2.* Można automatycznie wygenerować tabelę, model, a także kontroler z interfejsem do obsługi modelu.

Rails wersja 2.* Można automatycznie wygenerować tabelę, model, a także kontroler z interfejsem do obsługi modelu. Przykład $ ruby script/generate scaffold Wyklady title:string opis:text punkty:integer

Wynik działania skryptu Przykład $ ruby script/generate scaffold Wyklady title:string opis:text punkty:integer

Wynik działania skryptu Przykład $ ruby script/generate scaffold Wyklady title:string opis:text punkty:integer Migracja Powstaje plik migracji, konieczne jest $ rake db:migrate

Wynik działania skryptu Przykład $ ruby script/generate scaffold Wyklady title:string opis:text punkty:integer Migracja Powstaje plik migracji, konieczne jest $ rake db:migrate Kontroler z obsługą dodawania, usuwania i edycji danych modelu (CRUD) i odpowiednimi widokami

Wynik działania skryptu Przykład $ ruby script/generate scaffold Wyklady title:string opis:text punkty:integer Migracja Powstaje plik migracji, konieczne jest $ rake db:migrate Kontroler z obsługą dodawania, usuwania i edycji danych modelu (CRUD) i odpowiednimi widokami I jeszcze parę innych rzeczy

Plan wykładu Modele danych i bazy danych Modele danych Migracje Bazy danych w Railsach Rusztowania Walidacja modeli

Model przypomnienie Modele to podklasy klasy ActiveRecord::Base Każda taka klasa odpowiada tabeli w relacyjnej bazie danych Obiekty tych klas odpowiadają wierszom tych tabel Metody w tych klasach ukrywają szczegóły związane z SQL i bazą danych

Podstawowe operacje na danych Wyszukiwanie, modyfikacja i tworzenie nowych obiektów Kontrola poprawności danych - walidacja

Walidacja warunki wbudowane Funkcje standardowe validates presence of :nazwa, :cena validates numericality of :cena, :message => Cena nie jest liczbą, :if => test() validates uniqueness of :nazwa

Zastosowanie app/models/wyklady.rb: class Wyklady < ActiveRecord::Base validates_uniqueness_of :title end

Walidacja własna Metoda w klasie modelu: class Wyklady < ActiveRecord::Base protected def validate errors.add(:cena, cena powinna być dodatnia ) if cena.nil? cena < 0.01 end end

Plan wykładu Modele danych i bazy danych Modele danych Migracje Bazy danych w Railsach Rusztowania Walidacja modeli