Emergent Web Technologies Spring 2009 Class 6

esse quam videri
Jump to: navigation, search

Introduction

This week we'll finish up with an introduction to Ruby and move on to Ruby on Rails. We'll start with an introduction to web frameworks in general, and then move on to Model View Controller. Finally, we'll build a small Rails app in class to demonstrate how much more quickly you can build applications if you have a framework to start with.

In Class Activity 1

Develop a simple Ruby class that represents a Vehicle. The Vehicle class should have public properties for a registration id and a color. It should also have functions for starting and stopping the vehicle. Make the functions write "started" and "stopped" to the console when the car is started or stopped.

Develop a Car class that inherits from the vehicle class. The Car class should have a new public property for the number of doors. You should should be able to pass in the color and number of doors to the constructor for the car.

Once you have both of the classes created, test out your code by creating a new car and make sure that you can start it and stop it. Also, make sure that you can set the registration id and read back the color and number of doors by printing them out to the console.

Your test code should look something like this

car = Car.new(4, :green)
car.registration_id = 5000

puts car.registration_id
puts car.color
puts car.number_of_doors

Remember that a Ruby class looks like this

class Vehicle
  
end

Commands to Run Before Developing With Rails

Before you start developing with Ruby on Rails, you'll want to make sure that all of the code associated with Rails is current. These commands will make sure that everything is up to date with the latest versions.

Open the Instant Rails application and right click on the icon in the taskbar. Choose Rails Applications > Open Ruby Console Window. Run this command first

gem install rubygems-update

Once the first command has completed, run this command

update_rubygems

Finally, run this command

gem update rails

You should now be up to date.

Let's Create Rails Application

Create your Rails application

rails my_test_app

You should see a list of files that have been created for your application. Let's see if it works.

 cd my_test_app
 ruby script/server

Now open a browser and navigate to http://localhost:3000.

Now, let's start creating some pages. Create a new controller for a page about widgets. First you'll need to stop the server by hitting ctrl + c in your console window. Then type this:

ruby script/generate controller Widgets

Notice that a controller has been created at

app/controllers/widgets_controller.rb. 

Open the file and add an new action to it. Let's call it list:

def list
  render :text => "This is a list"
end 

Start the server back up again and open http://localhost:3000/widgets/list. You should see the text "This is a list".

Take out the render text line and create a template instead. Open the folder at

/app/views/widgets/

and create a new file called

list.html.erb

Let's make the page a little more dynamic by passing a variable to the view. Create a new variable to pass to the view for the number of widgets. Add this to your controller

def list
  @widget_count = 50
end

And update your view so that it shows the number of widgets

There are <%= @widget_count %> widgets

Or pass along a collection. Add this to your controller

@widgets = [:widget1, :widget2, :widget3]

And modify your view so it looks like this

<ul>
<% @widgets.each do |widget| -%>
   <li><%= widget %></li>
<% end -%>
</ul>