Ruby on Rails Creating a Rails Application

13
Ruby on Rails Creating a Rails Application Carol E Wolf CS396X

description

Ruby on Rails Creating a Rails Application. Carol E Wolf CS396X. Ruby Console Window. First choose Rails Applications Next select Open Ruby Console Window At the prompt, type rails apps_name For example: rails library This creates a full directory system in the folder rails_apps. - PowerPoint PPT Presentation

Transcript of Ruby on Rails Creating a Rails Application

Page 1: Ruby on Rails Creating a Rails Application

Ruby on RailsCreating a Rails Application

Carol E WolfCS396X

Page 2: Ruby on Rails Creating a Rails Application

Ruby Console Window

•First choose Rails Applications•Next select Open Ruby Console Window•At the prompt, type• rails apps_name• For example: rails

library

•This creates a full directory system in the folder rails_apps.

Console Window

Page 3: Ruby on Rails Creating a Rails Application

Rails directory system

Page 4: Ruby on Rails Creating a Rails Application

Important folders app

controllers – sits between client and database helpers – module with common ruby code models – code to interface with the database views – web pages containing html and erb

db – contains database migration – methods to change the database

script console – interactive console window for ruby code dbconsole – interactive console window for the

database generate – methods to generate scaffolding and

migrations server – activates server to be used with localhost

Page 5: Ruby on Rails Creating a Rails Application

Adding a table to the database You can use the scaffold command to set up your

database. The database is created when you create the application.

Type the following to create a table called books. ruby script/generate scaffold book isbn:string

author:string title:string Note that if you call it book, rails automatically makes it

books. This creates the file 20080805165427_create_books.rb in the

db/migrate folder, where the numbers are a time stamp. Then type

rake db:migrate The rake command executes all the ruby files in the migrate

folder. Rails includes a primary id field that is automatically

incremented when you add rows to the database.

Page 6: Ruby on Rails Creating a Rails Application

The file, schema.rb Rake adds a ruby file to the db folder called schema. Lines

beginning with # are comments.# This file is auto-generated from the current state of the

database.# (Additional comments omitted.) ActiveRecord::Schema.define(:version => 20080805165427)

do  create_table "books", :force => true do |t| t.string "isbn" t.string "author" t.string "title" t.datetime "created_at" t.datetime "updated_at" end end

Page 7: Ruby on Rails Creating a Rails Application

View the contents of the database To begin with, the books table is empty. Bring

up the server to access it. ruby script/server The server that comes with InstantRails is called

mongrel. It is a version of the open source apache server.

Point your browser to http://localhost:3000/books where localhost is the

name for the IP address 127.0.0.1. (Use that if your computer does not recognize localhost.)

localhost is often called the local loop.

Page 8: Ruby on Rails Creating a Rails Application

The first web page

The first web page is just the title of the table.

It includes a heading and a link to a New book page.

Click it to add data to the table.

Page 9: Ruby on Rails Creating a Rails Application

The New book page The new book page

provides text fields with labels.

You can use these to add data.

Just fill in the fields and click Create.

When done, it will take you to a third page that shows what you added.

Page 10: Ruby on Rails Creating a Rails Application

The show page and the index after adding a book to the table.

Page 11: Ruby on Rails Creating a Rails Application

The index.html.erb page uses embedded ruby code.

<h1>Listing books</h1><table> <tr>` <th>Isbn</th> <th>Author</th> <th>Title</th> </tr><% for book in @books %> <tr> <td><%=h book.isbn %></td> <td><%=h book.author %></td> <td><%=h book.title %></td> <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 %>

Page 12: Ruby on Rails Creating a Rails Application

Explanation of some of the index page code The <table> tag creates a table with headers

enclosed by <th>…</th> , rows by <tr>…</tr>, and columns by <td>…</td>

The embedded ruby code is enclosed by <%=h…%> <%=h book.isbn %> This line displays the data in the book column.

The controller retrieves the data in a result set, a two dimensional array. It is displayed on the page using a ‘for’ loop. <% for book in @books %> The ‘@’ sign is used to indicate a variable.

The <%= link_to 'New book', new_book_path %> line generates the html code <a href="/books/new">New book</a> .

Page 13: Ruby on Rails Creating a Rails Application

Header code added by rails to the beginning of the web pages. It also adds a foot to the end.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

<head> <meta http-equiv="content-type" content="text/html;charset=UTF-8" />

<title>Books: index</title> <link href="/stylesheets/scaffold.css?1217948068"

media="screen" rel="stylesheet" type="text/css" /> </head> <body> <p style="color: green"><%= flash[:notice] %></p>