Ruby on Rails – vývoj dynamických web 2.0 aplikácií

Z Kiwiki
Verzia z 18:40, 20. január 2010, ktorú vytvoril WikiSysop (diskusia | príspevky)
Skočit na navigaci Skočit na vyhledávání


REST a Rails

Prototype, script.aculo.us a Rails

Pototype a Rails

AJAX

Script.aculo.us a Rails

Vizuálne efekty

Efekty scipt.aculo.us

Záver

Cieľom tejto práce bolo v úvode charakterizovať pojem web 2.0, popísať jeho črty a detailnejšie popísať niektoré z prostriedkov, ktoré sú s týmto pojmom spojené. Snahou bolo zamerať sa hlavne na rozdiely medzi technológiou web 1.0 a web 2.0, i keď toto rozlíšenie nie je častokrát úplne jednoznačné, keďže všetky prostriedky, ktoré využíva web 1.0, sa objavujú aj pri web 2.0. Napriek tomu je zjavné, že technológie web 2.0 prinášajú nový, dynamický rozmer do internetového prostredia, kde sa z pasívnych návštevníkov stávajú častokrát prispievatelia do rôznych blogov a podobne. Internet tak už nie je len statickou stránkou, ale interaktívnym prostredím, ponúkajúcim množstvo aplikácií. Tieto sú vytvárané pomocou novodobých technológií, či už ide o štýl architektúry REST, alebo dynamickú technológiu Ajax. Obe tieto technológie sme popísali podrobješie v tejto práci v súvislosti s frameworkom Rails, ktorý umožňuje efektívne a jednoduché vytváranie novodobých aplikácií. To dokazuje aj fakt, že Rails obsahuje zabudované množstvo pomocných funkcií pre Ajax, knižnice JavaScriptu či generátory, ktoré automaticky vytvárajú čitateľnú architektúru podľa vzoru REST. Pokračovaním práce bude použitie získaných poznatkov pri implemetnácii týchto technológií do aplikácie školského rozvrhu.

Použitá literatúra

  1. Web 2.0 [online]. 23. 12. 2005 , 13.01.2010 [cit. 2010-01-13]. Dostupný z WWW: <http://cs.wikipedia.org/wiki/Web_2.0>.
  2. SYMBIO Digital, s. r. o.. Web 2.0 [online]. [1999-2010] [cit. 2010-01-13]. Dostupný z WWW: <http://www.symbio.cz/slovnik/web-2-0.html>.
  3. Šifra J., Fenomén Web 2.0, Stratégie 01.2007
  4. Web 2.0 [online]. [2003-2009] [cit. 2010-01-13]. Dostupný z WWW: <http://suewebik.net/webove/web20-def.html>.
  5. SYMBIO Digital, s. r. o.. Web 2.0 [online]. [1999-2010] [cit. 2010-01-13]. Dostupný z WWW: < http://www.symbio.cz/slovnik/mashup-web-application-hybrid.html >.
  6. ZANDL, Patrick. Mashup aneb Míchanice pro Web 2.0 [online]. 21/05/2007 [cit. 2010-01-13]. Dostupný z WWW: <http://www.certodej.cz/view/mashup-aneb-m>.
  7. KHUDHUR , Patrik. Nejžhavější technologie dneška: Ajax - úplně nový web [online]. 11.06.2007 [cit. 2010-01-13]. Dostupný z WWW: <http://computerworld.cz/vyvoj/nejzhavejsi-technologie-dneska-ajax-uplne-novy-web-2455>.
  8. HOUSER , Pavel. Nejznámější aplikace Web 2.0 [online]. 10.09.2008 [cit. 2010-01-13]. Dostupný z WWW: <http://businessworld.cz/ostatni/nejznamejsi-aplikace-web-2-0-1677>.
  9. Ruby, S., Dave, T., Agile web development with Rails, The pragmatic Bookshelf, ISBN-10: 1-934356-16-6, 2008
  10. Fernandez, O.,: The Rails Way, 2007, Boston, ISBN 0-321-44561-9

Prílohy

Príloha A

controllers/books_controller.rb

class BooksController < ApplicationController
  # GET /books
  # GET /books.xml
  def index
    @books = Book.all

    respond_to do |format|
      format.html # index.html.erb
      format.xml  { render :xml => @books }
    end
  end

  # GET /books/1
  # GET /books/1.xml
  def show
    @book = Book.find(params[:id])

    respond_to do |format|
      format.html # show.html.erb
      format.xml  { render :xml => @book }
    end
  end

  # GET /books/new
  # GET /books/new.xml
  def new
    @book = Book.new

    respond_to do |format|
      format.html # new.html.erb
      format.xml  { render :xml => @book }
    end
  end

  # GET /books/1/edit
  def edit
    @book = Book.find(params[:id])
  end

  # POST /books
  # POST /books.xml
  def create
    @book = Book.new(params[:book])

    respond_to do |format|
      if @book.save
        flash[:notice] = 'Book was successfully created.'
        format.html { redirect_to(@book) }
        format.xml  { render :xml => @book, :status => :created, :location => @book }
      else
        format.html { render :action => "new" }
        format.xml  { render :xml => @book.errors, :status => :unprocessable_entity }
      end
    end
  end

  # PUT /books/1
  # PUT /books/1.xml
  def update
    @book = Book.find(params[:id])

    respond_to do |format|
      if @book.update_attributes(params[:book])
        flash[:notice] = 'Book was successfully updated.'
        format.html { redirect_to(@book) }
        format.xml  { head :ok }
      else
        format.html { render :action => "edit" }
        format.xml  { render :xml => @book.errors, :status => :unprocessable_entity }
      end
    end
  end

  # DELETE /books/1
  # DELETE /books/1.xml
  def destroy
    @book = Book.find(params[:id])
    @book.destroy

    respond_to do |format|
      format.html { redirect_to(books_url) }
      format.xml  { head :ok }
    end
  end
end

models/book.rb

class Book < ActiveRecord::Base
end

views/books/edit.html.erb

<h1>Editing book</h1>

<% form_for(@book) do |f| %>
  <%= f.error_messages %>

  <p>
    <%= f.submit 'Update' %>
  </p>
<% end %>

<%= link_to 'Show', @book %> |
<%= link_to 'Back', books_path %>

views/books/index.html.erb

<h1>Listing books</h1>

<table>
  <tr>
  </tr>

<% @books.each do |book| %>
  <tr>
    <td><%= link_to 'Show', book %></td>
    <td><%= link_to 'Edit', edit_book_path(book) %></td>
    <td><%= link_to 'Destroy', book, :confirm => 'Are you sure?', :method => :delete %></td>
  </tr>
<% end %>
</table>

<br />

<%= link_to 'New book', new_book_path %>

views/books/new.html.erb

<h1>New book</h1>

<% form_for(@book) do |f| %>
  <%= f.error_messages %>

  <p>
    <%= f.submit 'Create' %>
  </p>
<% end %>

<%= link_to 'Back', books_path %>

views/books/edist.html.erb

<%= link_to 'Edit', edit_book_path(@book) %> |
<%= link_to 'Back', books_path %