Úvod do rails

952 views

Published on

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
952
On SlideShare
0
From Embeds
0
Number of Embeds
9
Actions
Shares
0
Downloads
0
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Úvod do rails

  1. 1. Úvod do Ruby on Rails © UNICORN COLLEGE 2007 Friday, March 5, 2010
  2. 2. 1. Základní filozofie Rails! Méně kódu, krátký vývojový cyklus Convention over configuration Skoro žádné konfigurační soubory Předem definovaná adresářová struktura Konvence pro pojmenování souborů Důležité zkratky: MVC (Model - View - Controller) ORM (Object-Relational Mapping) DRY (Don’t Repeat Yourself) Podpora pro AJAX a web services (REST, SOAP) Vývojové nástroje, dokumentace, komunita © UNICORN COLLEGE 2007 Friday, March 5, 2010
  3. 3. 2. Ruby on Rails: Komponenty a request-response cyklus Prohlížeč odešle požadavek na URL: Prohlížeč http://localhost:3000/users/show/1 HTTP Požadavek (URL) Rails server na portu 3000 přijme požadavek a předá URL na Router. HTTP Odpověď (HTML) Jedná o požadavek na kontroler User, provést akci show, záznam id = 1 Router Vytvoří se nová instance kontroleru UserController a zavolá se metoda Ruby on Rails show s parametrem id = 1. Tato metoda se dotáže na data zákazníka View č.1 modelu User. Kontroler (pohled) Model User odešle SQL dotaz do databáze a po obdržení výsledku předá data zpět kontroleru. Modely Active Record Kontroler uloží data do proměnné User Airplane Ticket @user a předá řízení pohledu. V pohledu se do HTML šablony doplní data z této proměnné a výsledná stránka se odešle nazpět prohlížeči. Databáze Prohlížeč zobrazí přijaté HTML Friday, March 5, 2010
  4. 4. 3. Adresářová struktura app controllers user_controller.rb models user.rb views layouts main.html.erb user show.html.erb config routes.rb db database.yml migrations public index.html © UNICORN COLLEGE 2007 Friday, March 5, 2010
  5. 5. 4. Controller a View: Interakce a prezentace 1. Vytvořte novou Rails aplikaci pomocí IDE, nebo pomocí příkazu rails demo 2. Založte nový soubor app/controllers/say_controller.rb class SayController < ApplicationController def hello @message = "Hello World!" end end 3. Založte nový soubor app/views/say/hello.html.erb <html> <head> <title>Rails demo program</title> </head> <body> <h1><%= @message %></h1> </body> </html> 4. Spusťte aplikaci v IDE nebo pomocí příkazu script/server © UNICORN COLLEGE 2007 Friday, March 5, 2010
  6. 6. 5. Model: ActiveRecord a přístup k databázi ORM = Objektově-Relační Mapování Objektové rozhraní pro relační databázi Jednodušší a pohodlnější než SQL Co se vlastně “mapuje”? Každá tabulka v databázi odpovídá jedné ruby třídě Každý řádek v tabulce odpovídá jednomu ruby objektu Každý sloupec odpovídá jednomu atributu Konvence pro tvorbu tabulek Jména tabulek jsou v plurálu, např. users Jména ruby tříd jsou v singuláru, např. User Všechny tabulky mají číselný primární klíč nazvaný id Třídy modelů jsou uloženy v adresáři app/models Databázové tabulky se vytvářejí pomocí migrací © UNICORN COLLEGE 2007 Friday, March 5, 2010
  7. 7. 6. Migrace Nástroj pro tvorbu a údržbu schématu databáze Popis databázových tabulek pomocí ruby příkazů Vytvoř novou tabulku Smaž tabulky Přidej sloupec určitého datového typu Odeber sloupec Každá migrace je samostatná třída Obsahuje metodu “up” pro vytvoření nových tabulek A metodu “down” pro jejich smazání Definuje novou verzi schématu Jak pracovat s migracemi? rake db:migrate (migrovat na nejnovější verzi) rake db:migrate VERSION=X (migrovat na verzi X) rake db:version (zjistit současnou verzi) © UNICORN COLLEGE 2007 Friday, March 5, 2010
  8. 8. 7. Migrace: příklad class CreateUsers < ActiveRecord::Migration def self.up create_table :users do |t| t.string :first_name t.string :last_name t.date :date_of_birth t.integer :zipcode end end def self.down drop_table :users end end © UNICORN COLLEGE 2007 Friday, March 5, 2010
  9. 9. 8. Základní práce s daty CRUD (Create, Read, Update, Delete) 4 základní databázové operace Vytváření, Čtení, Úpravy, Mazání 4 Příkazy pro ActiveRecord Vytváření nových záznamů (create) new Čtení, hledání záznamů (read) find Úpravy záznamů (update) save Mazání záznamů (delete) destroy © UNICORN COLLEGE 2007 Friday, March 5, 2010
  10. 10. 9. ActiveRecord - Vytváření záznamů user = User.new user.first_name = "Yukihiro" user.last_name = "Matsumoto" user.date_of_birth = Date.parse('14.4.1965') user.save user = User.new( user = User.create( :first_name => "David", :first_name => "Zed", :last_name => "Hanson" :last_name => "Shaw" ) ) user.save user = User.new( user = User.new( :first_name => "Rick", :first_name => "Obie", :last_name => "Olson" :last_name => "Fernandez" ) ) if user.save if user.save! # All is ok # All is ok else rescue RecordInvalid # Couldn't save user # Couldn't save end end © UNICORN COLLEGE 2007 Friday, March 5, 2010
  11. 11. 10. Vyhledávání, editace a mazání Vyhledávání - podle id, podle atributu, jeden záznam, pole user = User.find(1) user = User.find_by_first_name("Zed") puts user.first_name # Yukihiro puts user.last_name # Shaw users = User.all users = User.find_all_by_age(33) puts users.length # 3 puts users.count # 2 Text Editace - po jednotlivých atributech, nebo s použitím slovníku user = User.find(1) user = User.find(1) user.update_attributes( user.first_name = "Koichi" :first_name => "Koichi", user.last_name = "Sasada" :last_name => "Sasada" user.save ) Mazání - pro více záznamů je nutné iterovat user = User.find(1) users = User.all user.destroy users.each{|u| u.destroy} © UNICORN COLLEGE 2007 Friday, March 5, 2010
  12. 12. 11. Formuláře a PARAMS user_form.html.erb <% form_for :user, :url => { :action => "create" } do |f| %> First name: <%= f.text_field :first_name %> <br/> Last name: <%= f.text_field :last_name %> <br/> Biography: <%= f.text_area :biography %> <br/> Admin? <%= f.check_box :admin %> <br/> <% end %> user_controller.rb def create Text @user = User.new @user.update_attributes(params[:user]) if @user.save redirect_to :action => 'index' else redirect_to :action => 'user_form' end end def user_form # Do nothing - renders user_form.html.erb end © UNICORN COLLEGE 2007 Friday, March 5, 2010
  13. 13. Děkuji za pozornost © UNICORN COLLEGE 2007 Friday, March 5, 2010

×