the rails talk slides

13
School of Informatics University of Edinburgh An Introduction to Ruby on Rails Ken Dawson

Upload: biggy97

Post on 17-Jul-2016

7 views

Category:

Documents


2 download

DESCRIPTION

This is helps get started with Ruby on Rails

TRANSCRIPT

Page 1: The Rails Talk Slides

School of InformaticsUniversity of Edinburgh

An Introduction to Ruby on Rails

Ken Dawson

Page 2: The Rails Talk Slides

November 2006 An Introduction to Ruby on Rails 2

● What is Ruby on Rails?● The ruby language● Using Ruby on Rails with DICE● Tables, objects and URLs● Setting up a web interface to a database● Rails directory structure● Simple worked example● A real application -

https://devproj.inf.ed.ac.uk/● References

Page 3: The Rails Talk Slides

November 2006 An Introduction to Ruby on Rails 3

What is Ruby on Rails?

● A web application framework written in the ruby programming language

● It provides a way of quickly prototyping web applications that interface to a database and then supports the development of the application to greater levels of sophistication

● Uses the Model-view-controller architecture● Open source software first released in July 2004

Page 4: The Rails Talk Slides

November 2006 An Introduction to Ruby on Rails 4

The Ruby Language

● Object oriented programming language● Claimed to allow writing of compact,

readable and maintainable code● Syntax and semantics are 'intuitive and

very clean'

Page 5: The Rails Talk Slides

November 2006 An Introduction to Ruby on Rails 5

Using Ruby on Rails with DICE

To include the rails software use:

#include <dice/options/ruby_on_rails.h>

To use mysql as the database use:

#include <dice/options/mysql-server.h>

To use apache1.3 (with kx509 authentication) use:

#include <dice/options/kx509-webserver.h>

Page 6: The Rails Talk Slides

November 2006 An Introduction to Ruby on Rails 6

Tables, Objects and URLs

Rails automatically maps each URL on the web server that does not correspond to an actual file to a class and a method of that class (with any third element of the url being passed as the value of a variable :id)

RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^(.*)$ dispatch.cgi [QSA,L]Database Table Class URL

<=> <=>cabbages Cabbage http://<host>:<port>/cabbage/

Page 7: The Rails Talk Slides

November 2006 An Introduction to Ruby on Rails 7

Setting up a Web Interface to a Database

● Set up the initial rails framework for your database (in our example database name is demo)

$ rails demo● Create the database and tables (using say mysql)● Edit the rails database configuration file

(demo/config/database.yml) to set database name, password and socket

● Make the public directory be the document root for the web server

Page 8: The Rails Talk Slides

November 2006 An Introduction to Ruby on Rails 8

Rails Directory Structure 1

<database_name>/

public/ apps/ config/

index.html dispatch.cgi database.yml environment.rb

controllers/ views/models/

layouts/

script/

generate server

Page 9: The Rails Talk Slides

November 2006 An Introduction to Ruby on Rails 9

Simple Worked Example

● Generate the rails model and controller files for the class 'Purchase'

$ ruby script/generate model Purchase

$ ruby script/generate controller Purchase● Defining new class methods/actions● Using the rails default definitions of

standard actions – scaffold :<class>

$ ruby script/generate scaffold Item

Page 10: The Rails Talk Slides

November 2006 An Introduction to Ruby on Rails 10

Rails Directory Structure 2

<database_name>/

public/ apps/ config/script/

index.html dispatch.cgi database.yml environment.rb

controllers/ views/

generate server

models/

c1_controller.rb c2_controller.rblayouts/ c1/ c2/c1.rb c2.rb

Page 11: The Rails Talk Slides

November 2006 An Introduction to Ruby on Rails 11

Rails Directory Structure 3

<database_name>/

public/ apps/ config/

index.html dispatch.cgi database.yml environment.rb

controllers/ views/models/

c1_controller.rb

c1/

c2_controller.rb

c2/

c1.rb c2.rb

m1.rhtml m2.rhtml

script/

generate server

layouts/

c1.rb c2.rb

Page 12: The Rails Talk Slides

November 2006 An Introduction to Ruby on Rails 12

A Real Application

The web application for tracking the progress on development projects was developed using Ruby on Rails.

The web site is at https://devproj.inf.ed.ac.uk

It uses apache 1.3 as the web server and mysql 3.23 as the database server.

Page 13: The Rails Talk Slides

November 2006 An Introduction to Ruby on Rails 13

References

● http://wiki.rubyonrails.org/rails● http://api.rubyonrails.org/● http://www.rubycentral.com/● http://www.onlamp.com/pub/a/onlamp/2005/01/20/rails.html