Ruby on Rails Pei-Ying Wang

18
Ruby on Rails Pei-Ying Wang [email protected] Overview What is Ruby on Rails? Rails frameworks (components) Example: simple web application Pros and Cons

Transcript of Ruby on Rails Pei-Ying Wang

Page 1: Ruby on Rails Pei-Ying Wang

Ruby on Rails

Pei-Ying [email protected]

OverviewWhat is Ruby on Rails? Rails frameworks (components) Example: simple web application Pros and Cons

Page 2: Ruby on Rails Pei-Ying Wang

What is Ruby on Rails? Ruby Ruby on Rails

An open source, interpreted scripting language Created by Yukihiro Matsumoto in the mid-

1990s

Ruby on Rails, ROR or Rails An full-stack, open source web application

framework written in Ruby Designed for writing database-oriented real-

world Web application quickly and easily Created by David Heinemeier Hansson

Page 3: Ruby on Rails Pei-Ying Wang

What is Ruby on Rails?(2)

Very short history Extracted from Basecamp(a project-

management tool by 37Signals) First released : July 2004 Latest release: April 2006(Version 1.1.2)

Principles(DRY-Don’t Repeat Yourself) Less software Convention over Configuration

Page 4: Ruby on Rails Pei-Ying Wang

Rails Frameworks(components)

Page 5: Ruby on Rails Pei-Ying Wang

Example: a simple web application

After starting MySQL and Web server, Create a new web application called cookbook2:

> Rails cookbook2

Page 6: Ruby on Rails Pei-Ying Wang

Example: a simple web application(2)

class MyTestController < ApplicationControllerend

> ruby script\generate controller MyTest

To make a simple Hello World application:

Page 7: Ruby on Rails Pei-Ying Wang

Example: a simple web application(3)

To make a simple Hello World application(2):

class MyTestController < ApplicationControllerdef index

render_text "Hello World"end

end

http://localhost:3000/My_Test/index

http://localhost:3000//My_Test

http://localhost:3000/MyTest

Page 8: Ruby on Rails Pei-Ying Wang

Example: a simple web application(4)

Online Recipe First, create an database called cookbook2

and a table called recipes

Page 9: Ruby on Rails Pei-Ying Wang

Example: a simple web application(5)

> ruby script\generate model Recipe

Page 10: Ruby on Rails Pei-Ying Wang

Example: a simple web application(6)

> ruby script\generate controller Recipe

Magic happens by simply adding this line to recipe_controller.rb !Open browser and go tohttp://localhost:3000/recipe/new

Page 11: Ruby on Rails Pei-Ying Wang

Example: a simple web application(7)

http://localhost:3000/recipe/new

Now, you can start to populate

the database

http://localhost:3000/recipe/new

Click on the “create” button to add data

Page 12: Ruby on Rails Pei-Ying Wang

Example: a simple web application(8)

http://localhost:3000/recipe/list

http://localhost:3000/recipe/show/1

Page 13: Ruby on Rails Pei-Ying Wang

Example: a simple web application(9)

• Take over the handling of the list action from the scaffolding

Step1:

Add a list method in the file “recipe_controller.rb”

Page 14: Ruby on Rails Pei-Ying Wang

Example: a simple web application(10)

Add a new file called “list.rhtml” under app/views/receipe

.rhtml : an html file with Ruby code embedded within

<% %> and <%= %> tags

Step2:

<html><head><title>All Recipes</title></head><body>

<h1>Online Cookbook - All Recipes</h1><table border="1"> <tr> <td width="80%"><p align="center"><i><b>Recipe</b></i></td> <td width="20%"><p align="center"><i><b>Date</b></i></td> </tr>

<% @recipes.each do |recipe| %> <tr> <td><%= link_to recipe.title, :action => "show", :id => recipe.id %></td> <td><%= recipe.date %></td> </tr> <% end %></table><p><%= link_to "Create new recipe", :action => "new" %></p>

</body></html>

Page 15: Ruby on Rails Pei-Ying Wang

Example: a simple web application(11)

Step3:

Ask the recipe class for a collection of all recipes from the DB and assign the collection to the instance variable @recipes

Page 16: Ruby on Rails Pei-Ying Wang

Example: a simple web application(12)

http://localhost:3000/recipe/list

Done!

Page 17: Ruby on Rails Pei-Ying Wang

Pros and Cons

pros Less code High productivity & reduced

development time cons

too young Upgrades in foundational code may

result in instability in Rails Relies on a foundation of numerous other

applications

Page 18: Ruby on Rails Pei-Ying Wang

Reference Russel Kay: QUICK STUDY: Ruby on Rails. Computerworld, 11/28/2005, Vol.

39 Issue 48, pg26-26 David Geer: Will Software Developers Rid Ruby on Rails to Success?

Computer, Feb2006, Vol. 39 Issue 2, pg18-20 Stacy Cowley: Riding the ruby rails in a new direction  CRN. Jericho: Mar

13, 2006., Issue 1187;  pg. 43 Grant Buckler: Application developers climb aboard Ruby on Rails

 Computing Canada. Willowdale: Aug 19, 2005.Vol.31, Issue 11;  pg. 6 Daniel Bogan: Get on track with ruby on rails

http://www.sitepoint.com/article/ruby-on-rails Curt Hibbs:What Is Ruby on Rails? http://www.onlamp.com/lpt/a/6251  Bill Walton :Rolling with Ruby on [Instant]Rails

http://instantrails.rubyforge.org/tutorial/index.html Curt Hibbs: Rolling with Ruby on Rails, Part 2

http://www.onlamp.com/lpt/a/5641 Curt Hibbs: Ajax on Rails http://www.onlamp.com/lpt/a/5944 http://en.wikipedia.org/wiki/Ruby_On_Rails http://www.rubyonrails.com/