Mi is ez? A Ruby nyelvre épülő nyílt forráskódú keresztplatformos MVC (Model-View-Controller) mintára épülő webalkalmazás-keretrendszer

Hasonló dokumentumok
9.óra CodeIgniter Framework #1. Gyimesi Ákos

Szakdolgozat. Gulyás István. Debrecen

Symfony kurzus 2014/2015 I. félév. Controller, Routing

MVC Java EE Java EE Kliensek JavaBeanek Java EE komponensek Web-alkalmazások Fejlesztői környezet. Java Web technológiák

Webes alkalmazások fejlesztése 8. előadás. Webszolgáltatások megvalósítása (ASP.NET WebAPI)

Webes alkalmazások fejlesztése. Bevezetés az ASP.NET MVC 5 keretrendszerbe

JAVA webes alkalmazások

Webes alkalmazások fejlesztése. 9. előadás Bevezetés az ASP.NET MVC keretrendszerbe

ASP.NET CORE MVC Model réteg bevezetése Model Binding Repository tervezési minta Dependency Injection Transient és Singleton Custom Binding AutoMapper

WEBFEJLESZTÉS 2. ADATBÁZIS-KEZELÉS, OSZTÁLYOK

Multimédia 2017/2018 II.

MVC. Model View Controller

LBRA6i integrált rendszer

Webalkalmazás fejlesztés Java EE környezetben NetBeans segítségével: JavaServer Faces 1.2 AJAX

KROMESCH SÁNDOR APP FELHŐ. API-k és Webszolgáltatások a Cloudban. Magyarországi Web Konferencia November 8.

MySQL kontra MongoDB programozás. SQL és NoSQL megközelítés egy konkrét példán keresztül

Web-fejlesztés NGM_IN002_1

MailMasterPlus API. fejlesztői dokumentáció

1. sz. melléklet: Komplex portálrendszer fejlesztése szakmai specifikációja

WWW Kliens-szerver Alapfogalmak Technológiák Terv. Web programozás 1 / 31

PHP MySQL, Java JDBC MySQL. Adatbázisok az iskolában 2012 Dr. Balázs Péter Palatinus Endre és Erdőhelyi Balázs diái alapján

Programozó, csoportvezető

10.óra CodeIgniter Framework #3. Gyimesi Ákos

PHP. Adatbázisok gyakorlat

ANDROID ALKALMAZÁSFEJLESZTÉS

Biztonságos PHP a gyakorlatban

Szolgáltatás Orientált Architektúra és több felhasználós adatbázis használata OKF keretein belül. Beke Dániel

Google App Engine az Oktatásban 1.0. ügyvezető MattaKis Consulting

INFORMÁCIÓS- ÉS VEZÉRLŐSZOFTVER A SZÁMÍTÓGÉP-KOMPATIBILIS FUNKCIÓVAL BÍRÓ VÉRNYOMÁSMÉRŐKHÖZ

Madarassy László, mérnök, BME - Mobil Innovációs Központ. lmadarassy@mik.bme.hu

libgdx alapok, első alkalmazás

Webes alkalmazások fejlesztése 4. előadás. Megjelenítés és tartalomkezelés (ASP.NET Core) Cserép Máté

Webshop készítése ASP.NET 3.5 ben I.

Modern unit és integrációs tesztelés

Web programozás I. 4. előadás

Nyilvántartási Rendszer

Adatbázisok webalkalmazásokban

Flash és PHP kommunikáció. Web Konferencia 2007 Ferencz Tamás Jasmin Media Group Kft

Bevezetés Működési elv AJAX keretrendszerek AJAX

4. Gyakorlat: Csoportházirend beállítások

Adatbázisok - 1. előadás

Adatbázis. AMP! (Apache + MySql + PHP) XAMPP, LAMP, MAMP, WAMP et cetera

Java Programozás 4. Gy: Java GUI. Tipper, MVC kalkulátor

Java Programozás 11. Ea: MVC modell

Grafikus keretrendszer komponensalapú webalkalmazások fejlesztéséhez

Web programoz as

MVC desktop alkalmazás esetén. MVC Model-View-Controller. eredete: Model View Controller (MVC) elv Java EE Java alapú Web alkalmazások

Adatbázis-kezelés. Harmadik előadás

Web-fejlesztés NGM_IN002_1

WEBES ALKALMAZÁSFEJLESZTÉS 1.

JavaServer Pages (JSP) (folytatás)

Web-fejlesztés NGM_IN002_1

A Web réteg architektúrája A JSF web alkalmazás keretrendszer. Bakay Árpád dr. NETvisor kft (30)

Hálózati architektúrák és Protokollok GI Kocsis Gergely

Adatbázis-kezelés ODBC driverrel

Ajánlások szakdolgozat/diplomamunka készítéséhez. Horváth Ernő v0.3.3

Szathmáry László Debreceni Egyetem Informatikai Kar

Junior Java Képzés. Tematika

SUSE Linux Enterprise Server 12 Hargitai Zsolt

Webprogramozás HTML alapok előadás

A JavaServer Pages (JSP)

Előszó. Bevezetés. Java objektumok leképzése relációs adatbázisokra OJB-vel Viczián István Viczián István

Click to edit headline title style

BME IK 2 JAVA SERVER FACES UML-1 20/11/2013. Apache Struts. Spring MVC. Java Server Faces. Google Web Toolkit. Képességek

Gyakorlati vizsgatevékenység A

SZERVER OLDALI JAVASCRIPT. 8. hét MongoDB, séma tervezés, performancia kérdések

A JavaServer Pages (JSP)

Gyakorlati vizsgatevékenység B

MVC Java EE Java EE Kliensek JavaBeanek Java EE komponensek Web-alkalmazások Fejlesztői környezet

Apache, MySQL, PHP/Perl NetWare-n

Smarty AJAX. Miért jó ez? Ha utálsz gépelni, akkor tudod. Milyen műveletet tudunk elvégezni velük:

Java Web technológiák

SZAKKÉPZÉSI KERETTANTERV a(z) MOBILALKALMAZÁS FEJLESZTŐ SZAKKÉPESÍTÉS-RÁÉPÜLÉSHEZ

API tervezése mobil környezetbe. gyakorlat

A WEB programozása - Bevezetés őszi félév Dr. Gál Tibor

Internet technológiák

5. téma XML DB. Az adatkezelés és XML kapcsolata. Miért fontos az XML használata az adatbázis kezelésben?

A WORDPRESS TELEPÍTÉSÉNEK LÉPÉSEI

Webes alapozás. url, http, szerver oldal

Extrémen brutál, gyors talpaló PHP nyelvhez (database). v2.1

Enterprise JavaBeans. Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem. Az Enterprise JavaBeans

JEE tutorial. Zsíros Levente, 2012

HTML alapok. A HTML az Internetes oldalak nyelve.

WEBES ALKALMAZÁSFEJLESZTÉS 1.

ADATBÁZIS-KEZELÉS - BEVEZETŐ - Tarcsi Ádám, ade@inf.elte.hu

DRUPAL 7. újdonságai. Hojtsy Gábor Drupal Hétvége, Budapest november 14. Angela Byron fóliái alapján

PHP-MySQL. Adatbázisok gyakorlat

ADATBÁZIS VERZIÓKÖVETÉSE: LIQUIBASE

Java technológiák - ANTAL Margit. komponensek. A HTTP protokoll. Webkonténerek és szervletek. Egyszerű HTTP. ANTAL Margit.

XML / CSV specifikáció

strings.xml res/values/strings.xml fájlban hozzuk létre a hiányzó string adatforrásainkat A jelenlegi helyett ez álljon: <resources> <string

A gyakorlat során MySQL adatbázis szerver és a böngészőben futó phpmyadmin használata javasolt. A gyakorlat során a következőket fogjuk gyakorolni:

Bevezető. Servlet alapgondolatok

A relációs adatbáziskezelés szabványos nyelve Két fő csoportba sorolhatók az utasításai

IBM WebSphere Adapters 7. változat 5. alváltozat. IBM WebSphere Adapter for Oracle E-Business Suite felhasználói kézikönyv 7. változat 5.

Enterprise JavaBeans 1.4 platform (EJB 2.0)

Java és web programozás

Hangyász Hibakövető Rendszer

Kedvenc Ingyenes editorok avagy milyen a programozó jobbkeze? PSPAD editor DEVPHP IDE

Adatbázis kezelés Delphiben. SQL lekérdezések

Átírás:

Ruby on Rails

Mi is ez? A Ruby nyelvre épülő nyílt forráskódú keresztplatformos MVC (Model-View-Controller) mintára épülő webalkalmazás-keretrendszer

Történet David Heinemeier Hansson készítette Első kiadás: 2004. július 1.0-s verzió: 2005. december Legújabb verzió: 3.0.7

Alapelvek DRY: Don't Repeat Yourself CoC: Convention over Configuration REST: Representational State Transfer

Komponensek Action Pack Action Controller Action Dispatch Action View Action Mailer Active Model Active Record Active Resource Active Support Railties

Telepítés Szükséges szoftverek: ruby, irb rails webszerver, pl. lighttpd adatbázis, pl. mysql Ha mindez megvan: $ rails test $ cd test $ ruby script/server

Scaffold $ script/generate scaffold Post name:string title:string content:text $ rake db:migrate Ez létrehozza a posts nevű táblát, ami tartalmazza a fenti oszlopokat, illetve a Post nevű osztályt, ami ennek elérésére szolgál.

Modell A Post osztály kódja pedig így fog kinézni: class Post < ActiveRecord::Base end

Modell Ezt kibővíthetjük pl. ellenőrzésekkel: class Post < ActiveRecord::Base validates_presence_of :name,:title validates_length_of :title,:minimum => 5 end

Validációk típusai validates_uniqueness_of validates_presence_of validates_length_of validates_acceptance_of validates_associated validates_confirmation_of validates_exclusion_of validates_format_of validates_inclusion_of validates_numericality_of validates_with

Rails konzol $ script/console >> p = Post.create(:content => "Egy új post") => #<Post id: nil, name: nil, title: nil, content: "Egy új post", created_at: nil, updated_at: nil> >> p.save => false >> p.errors => #<ActiveRecord::Errors:0x23bcf0c @base=#<post id: nil, name: nil, title: nil, content: "Egy új post", created_at: nil, updated_at: nil>, @errors={"name"=>["can't be blank"], "title"=>["can't be blank", "is too short (minimum is 5 characters)"]}>

CRUD Create Read Update Delete

Create p = Post.new p.name = "Béla" p.title = "Valami" p.content = "Bla" p.save p = Post.new(:name => "Béla", :title => "Valami", :content => "Bla") p.save p.create(:name => "Béla", :title => "Valami", :content => "Bla")

Read Post.find(2) Post.find(2, 3, 4) Post.first Post.last Post.all == Post.find(:all) Post.count Post.order(:title) Post.limit(10) Post.where(:name => "Béla")

p = Post.find(2) p.title = "Új cím" p.save Update p = Post.find(2) p.attributes = {:name => "Béla", :title => "Valami", :content => "Bla"} p.save p = Post.find(2) p.update_attributes(:name => "Béla", :title => "Valami", :content => "Bla")

Delete p = Post.find(2) p.destroy Post.find(2).destroy Post.destroy_all

Kapcsolatok $ script/generate model Comment commenter:string body:text post:references class Comment < ActiveRecord::Base belongs_to :post end class Post < ActiveRecord::Base #validate... has_many :comments end

Kapcsolatok fajtái belongs_to has_one has_many has_and_belongs_to_many

Egy oldal létrehozása app/controllers/posts_controller.rb def index @posts = Post.find(:all) respond_to do format format.html # index.html.erb format.xml {render :xml => @posts} format.json {render :json => @posts} end end

Ruby kód HTML-be ágyazása app/view/posts/index.html.erb <!--...--> <% for post in @posts %> <tr> <td><%= post.name %></td> <td><%= post.title %></td> <td><%= post.content %></td> <!--...-->

Layoutok app/views/layouts/posts.html.erb <html> <head> <!-- --> </head> <body> <p style="color: green"> <%= flash[:notice] %> </p> <%= yield %> </body> </html>

Linkek <%= link_to comment.post.title, post_path(comment.post) %> # vagy <%= link_to comment.post.title, comment.post %> posts_path new_post_path edit_post_path(post) post, :method => :delete

Átirányítás Test::Application.routes.draw do map resources :posts match 'new_post' => 'Posts#new' match 'all' => redirect('/posts') match 'by_month/:month' => 'Posts#index' match ':name' => 'Posts#index', :as => 'user_posts' end

További információ http://rubyonrails.org http://api.rubyonrails.org http://apidock.com/rails http://railsapi.com/ http://guides.rubyonrails.org/getting_started.html http://railsforzombies.org/ http://railscasts.com/