Your SlideShare is downloading. ×
0
Ruby on Rails

Wprowadzenie

 

Klaudiusz Fabryczny,  klodus@gmail. com

Katowice,  Spodek 2.0, 2007.10.13
Ruby

http: lIwww. ruby-lang. org
- twórca:  Yukihiro Matsumoto,  "Matz"

 

- cechy języka: 

- darmowy, 

- o otwartym k...
Ruby on Rails

http: llwww. rubyonrails. com

- twórca:  David Heinemeier Hansson

 

- cechy framework'u : 

- darmowy, 
...
Komponenty Ruby on Rails: 

- ActiveRecord, 
- ActionPack: 
- Actioncontroller, 
- ActionView, 
- ActionWebService, 
- Act...
Struktura aplikacji (niepełna): 

Spodek

GPP
controllers
helpers
models
views

conñg
environments
database. ymI
environme...
ActionPack

http: //aplikacja/ adminledit_userI1024

MVC
/ home/ k/Spodek/ app/ controllers/ admin_controIler. rb

class A...
Active Record

Klasa odpowiada tabeli bazodanowej

instancja danej klasy konketnemu rekordowi w tabeli. 
Atrybut obiektu, ...
Relacje

"jeden do jednego"

 

class Car < ActiveRecord: :Base Class Owner < ActiveRecord: :Base

belongs_to : owner has_...
“jeden do wielu"

 

class Child < ActiveRecord: :Base class Mother < ActiveRecord: :Base
belongs_to : mother has_many : c...
"wiele do wielu"

m authors_books

author_id

Iii

tirst_name book_id
-
i

 

class Author < ActiveRecord: :Base Class Boo...
@book =  Book. find(1 O24)
@authors =  @book. authors

@author =  Author. find(2048)
@books_of_author =  @author. books
"Findery"

@user =  User. find_by_login_and_password(login,  password)

@user =  User. find(: first,  :conditions = >["Iog...
Walidacja

class User < ActiveRecord: :Base

validates_uniqueness_of zlogin, 
:message = >"Login musi być unikalny ll! "

...
"Callback'i"

class User < ActiveRecord : :Base
before_destroy : check_rights
def check_rights
# kod metody
end

end
Paginator

def list_products
@product_pages,  @products =  paginate (zproducts,  :order_by = >'name')
end

<%=  pagination...
Layout'y

class AdminControIler < AppIicationControIler
layout "admin"

end

class UserControlIer < AppIicationControIler
...
Migracja

class CreateUsers < ActiveRecord: :Migration

def self. up
create_table "users" do | f|
f. column "f_name",  :st...
Rake

rake db: migrate

rake db: migrate VERSION =  12

rake tmp: clear

rake log: clear

rake -T
AJAX

<head>
<%=  javascript_include_tag "prototype" %>
<Ihead>

<%=  Iink_to_remote ("Show", 
:update = >"mydiv", 
:url =...
Konsola

ruby script/ concole

»> u =  Dog. find_by_name("Mantas")
»> u. id = > 1

»> u. rasa =  "Spaniel"

»> u. save

»>...
Linki: 

http: lIwww. ruby-lang. org
http: llwww. rubyonrails. com
http: llwww.37signals. com
http: llwww. basecamphq. com...
Książki: 

- Agile Web Development with Rails:  Second Edition,  2nd Edition, 
- Practices of an Agile Developer, 

- Prog...
Dziękuję za uwagę

: pytania = > "klodus@gmail. com"
Upcoming SlideShare
Loading in...5
×

Wprowadzenie do Ruby on Rails

2,016

Published on

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

  • Be the first to like this

No Downloads
Views
Total Views
2,016
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
29
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Wprowadzenie do Ruby on Rails"

  1. 1. Ruby on Rails Wprowadzenie Klaudiusz Fabryczny, klodus@gmail. com Katowice, Spodek 2.0, 2007.10.13
  2. 2. Ruby http: lIwww. ruby-lang. org - twórca: Yukihiro Matsumoto, "Matz" - cechy języka: - darmowy, - o otwartym kodzie, - przenośny, - VHLL, - interpretowany, - w pełni objektowy, - dynamiczny, -łatwy do nauki, - zwięzły, - czytelny, - rozszerzalny, - aktywna społeczność, - reflection, - metaprograming.
  3. 3. Ruby on Rails http: llwww. rubyonrails. com - twórca: David Heinemeier Hansson - cechy framework'u : - darmowy, - o otwartym kodzie, - web'owy, - wysoce produktywny, - wspiera Ajax'a, - posiada wbudowany webserver WEBrick, - system budowania rake, - mechanizm migracji, - ORM (Object Relation Mapping), -interaktywna konsola, - architektura MVC (Model - Viev - Controller), - "filozofia": - DRY (Don't Repeat Yourself), - CoC (Convention over Configuration)
  4. 4. Komponenty Ruby on Rails: - ActiveRecord, - ActionPack: - Actioncontroller, - ActionView, - ActionWebService, - ActiveSupport, - ActionMailer, - ActiveResource - REST
  5. 5. Struktura aplikacji (niepełna): Spodek GPP controllers helpers models views conñg environments database. ymI environment. rb routes. rb db migrate O01_nazwa_migracji. rb doc lib taks log public images javascripts stylesheets script test tmp vendor plugins
  6. 6. ActionPack http: //aplikacja/ adminledit_userI1024 MVC / home/ k/Spodek/ app/ controllers/ admin_controIler. rb class AdminControIler < AppIicationControIler def edit_user # kod metody end end MVC / home/ k/Spodek/ app/ views/ admin/ edit_user. rhtml < % form_tag do | form| %> <%= render : partial = >"user" %> <%= submit_tag "Edytuj" %> <% end %>
  7. 7. Active Record Klasa odpowiada tabeli bazodanowej instancja danej klasy konketnemu rekordowi w tabeli. Atrybut obiektu, polu w tabeli. MVC / home/ k/Spodek/ app/ models/ user. rb Tabela USeTS class User < ActiveRecord: :Base end
  8. 8. Relacje "jeden do jednego" class Car < ActiveRecord: :Base Class Owner < ActiveRecord: :Base belongs_to : owner has_one : car end end
  9. 9. “jeden do wielu" class Child < ActiveRecord: :Base class Mother < ActiveRecord: :Base belongs_to : mother has_many : children end end
  10. 10. "wiele do wielu" m authors_books author_id Iii tirst_name book_id - i class Author < ActiveRecord: :Base Class Book < ActiveRecord: :Base has_and_belongs_to_many : books has_and_belongs_to_many : authors end end
  11. 11. @book = Book. find(1 O24) @authors = @book. authors @author = Author. find(2048) @books_of_author = @author. books
  12. 12. "Findery" @user = User. find_by_login_and_password(login, password) @user = User. find(: first, :conditions = >["Iogin = ? and password = ?", login, password ] ) @order = Order. find_by_sql("select id, name where id = 21")
  13. 13. Walidacja class User < ActiveRecord: :Base validates_uniqueness_of zlogin, :message = >"Login musi być unikalny ll! " vaIidates_confirmation_of : password validates_format_of : length, :with = > l^d+(m| cm)l validates_length_of zname, :maximum = >30 end
  14. 14. "Callback'i" class User < ActiveRecord : :Base before_destroy : check_rights def check_rights # kod metody end end
  15. 15. Paginator def list_products @product_pages, @products = paginate (zproducts, :order_by = >'name') end <%= pagination_links(@product_pages) °/ o>
  16. 16. Layout'y class AdminControIler < AppIicationControIler layout "admin" end class UserControlIer < AppIicationControIler layout "user", :except = > [zrss] end
  17. 17. Migracja class CreateUsers < ActiveRecord: :Migration def self. up create_table "users" do | f| f. column "f_name", :string f. column "I_name", :string end end def self. down drop_table "users" end end
  18. 18. Rake rake db: migrate rake db: migrate VERSION = 12 rake tmp: clear rake log: clear rake -T
  19. 19. AJAX <head> <%= javascript_include_tag "prototype" %> <Ihead> <%= Iink_to_remote ("Show", :update = >"mydiv", :url = > { : action = >:update_div} ) %> <div id= "mydiv">Zmień mnie<ldiv>
  20. 20. Konsola ruby script/ concole »> u = Dog. find_by_name("Mantas") »> u. id = > 1 »> u. rasa = "Spaniel" »> u. save »> d = Dog. find(12) »> d. destroy
  21. 21. Linki: http: lIwww. ruby-lang. org http: llwww. rubyonrails. com http: llwww.37signals. com http: llwww. basecamphq. com http: llwww. railsenvy. com http: llwww. rubyinside. com http: llrailscasts. com http: llwww. pragprog. com http: lIwiki. rubyonrails. org/ rails/ pages/ Plugins
  22. 22. Książki: - Agile Web Development with Rails: Second Edition, 2nd Edition, - Practices of an Agile Developer, - Programming Ruby: The Pragmatic Programmer's Guide, 2nd Edition, - Rails Recipes, - From Java To Ruby: Things Every Manager Should Know, - Learn to Program (Ruby), - Enterprise Integration with Ruby, - Rails for PHP Developers, - Rails for Java Developers, - Beginning Ruby: From Novice to Professional, - Practical Ruby Gems, - Beginning Google Maps Applications with Rails and Ajax: From Novice to Professional.
  23. 23. Dziękuję za uwagę : pytania = > "klodus@gmail. com"
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×