Riding The Rails

  • Uploaded by: Jorge Chao
  • 0
  • 0
  • June 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Riding The Rails as PDF for free.

More details

  • Words: 1,604
  • Pages: 55
Riding the Rails Jorge Chao University of New Orleans Slides available online at www.cs.uno.edu/~jchao/ RailsIntro.pdf

Wednesday, April 27, 2011

Rails Vs. Seaside Vs. Struts+Hibernate

Wednesday, April 27, 2011

What is Rails? •

Rails is an open source web application framework.



It follows the Model-View-Controller (MVC) architectural pattern that is emphasized by some Columbian Professors Who Shall Remain Nameless.



It also follows other buzzwordy design philosophies such as DRY and “Convention over Configuration”



To achieve DRYness, ActiveRecord provides an Object-Relational Mapping (O/RM) layer.

Wednesday, April 27, 2011

Web Applications • “With server-based software, no one can

tell you what language to use, because you control the whole system...Different languages are good for different tasks” - Paul Graham, Hackers & Painters

Wednesday, April 27, 2011

WEBrick/Mongrel • Rails comes with two possibilities for

running your application server: WEBrick, a simple server intended to get you started, and Mongrel written by the brilliant Zed Shaw (also author of Rails is a Ghetto)

• Rails apps can be run on many web servers including thin, Lighttpd(“lighty”), Apache (using Passenger or mod_ruby), nginx and others.

Wednesday, April 27, 2011

$ rails new hotness • Here is how every rails application begins

Wednesday, April 27, 2011

App Layout • This is what you get from rails new

Wednesday, April 27, 2011

Starting the Server • From the application directory, issue rails server.

Wednesday, April 27, 2011

All Systems Go • Navigate to localhost:3000 to confirm your application was created successfully.

Wednesday, April 27, 2011

Okay, So What? • Now we have a working rails application that does nothing.

• The ‘rails new’ command is analogous to

creating a new project in Eclipse, all the directories are laid out for you, nudging you toward MVC.

Wednesday, April 27, 2011

Model-View-Controller • Supported out of the box in Rails. In fact,

you have to try really hard to break MVC.

Wednesday, April 27, 2011

DRY • Don’t Repeat Yourself. • The DRY principle states: “Every piece of

knowledge must have a single, unambiguous, authoritative representation within a system.”

• Code is made more DRY in Rails using

ActiveRecord and the separation of view code from business logic (MVC)

Wednesday, April 27, 2011

Active Record • Active Record was first a design pattern

outlined by Martin Fowler in his book Patterns of Enterprise Application Architecture (Addison-Wesley Professional, 2002).

• The Active Record pattern is a way to

access data in a database. A database table is wrapped with a class, so an object instance is tied to a single row in the table. Querying/modifying the table then behaves like manipulating an object.

Wednesday, April 27, 2011

ActiveRecord • The secret sauce of Rails. This is the

Object-Relational Mapping layer that ties objects to similarly named tables in your database. This is based directly on the design pattern of the same name.

• It is database-agnostic, so the Rails code

you write to query some records, or make table changes works across multiple databases(these are called migrations).

Wednesday, April 27, 2011

Model Creation • Scaffolding in rails will give you a model with simple CRUD views and a basic controller to start with.

Wednesday, April 27, 2011

Models • Models are very spare at the beginning of

application development because of OR/M. All of the attributes are stored in the table.

• I like annotating the models with their attributes in comments via a plugin, annotate_models.

• Methods for getting and setting are also automatically created by rails for each attribute (using :attr_accessors)

Wednesday, April 27, 2011

Post Model • This is our newly created model, annotated with schema information for clarity.

Wednesday, April 27, 2011

Convention V. Configuration • The good thing about all this generated

code is it gives you a general idea of where things ought to go, and what models, views and controllers should look like.

• Except for models. The Post model has nothing in it! It gives no indication of standard model configuration.

Wednesday, April 27, 2011

What to Put in a Model • Model relationships such

as :has_one, :has_many, :belongs_to, :has_and_belongs_to_many

• Validations: validates_presence_of,

validates_confirmation_of, or custom validations

• Class or instance methods that don’t belong in the controller.

Wednesday, April 27, 2011

Post Redux

Wednesday, April 27, 2011

A Final Project Example • Here is how password authentication and

storage is being handled in a rails version of the final project.

Wednesday, April 27, 2011

Migrations • Migrations are a way of having a kind of

version control on your table structure/ schema.

• Rather than modify the schema directly,

migrations allow you to create the schema using Ruby code.

• Migration generators create a file with two methods self.up and self.down

• self.up makes the change, self.down reverts it. Wednesday, April 27, 2011

Post Migration • This is the migration that created our table.

Wednesday, April 27, 2011

Running Migrations • $ rake db:migrate • This will run all migrations that have not

been applied to the database, changing you schema accordingly.

• $ rake db:migrate VERSION=n • This will rollback your schema to the n-th version specified.

Wednesday, April 27, 2011

Schema • How rails creates the database schema.

Wednesday, April 27, 2011

SQL Console View • Here is yet another view of the database so far.

Wednesday, April 27, 2011

Cooking With YAML •

Rails uses YAML files to manage database connectivity.



YAML stands for Yet Another Markup Language, or YAML Ain’t Markup Language, depending on who you ask.



YAML is a human-readable data serialization format that takes concepts from programming languages such as C, Perl, and Python, and ideas from XML.

Wednesday, April 27, 2011

YAML File • This is the auto generated YAML for our DB.

Wednesday, April 27, 2011

Free CRUD! • CRUD is shorthand for Create, Read,

Update, and Delete, the most common actions that are performed on database records.

• Scaffolding generates the CRUD controller methods and views for us.

Wednesday, April 27, 2011

New CRUD • Creating a blog post using our new view.

Wednesday, April 27, 2011

Show View • This is our newly created blog post.

Wednesday, April 27, 2011

Rails Console • To query the database in rails we use the rails console.

• The console is an instance of irb with the

application environment loaded so we can test our application informally in addition to querying for data.

Wednesday, April 27, 2011

Rails Console

Wednesday, April 27, 2011

Controller • In the controller for the model, all of the

methods are controller actions that correspond to views (new, edit, show, list, etc.)

• Controllers are where your view logic should go such as pagination, or page access.

Wednesday, April 27, 2011

Controller Actions

Wednesday, April 27, 2011

More Actions

Wednesday, April 27, 2011

Create and Update

Wednesday, April 27, 2011

Views • Views in rails are HTML documents with embedded ruby, such as new.html.erb.

• View files with the same name as a

controller action (method) get rendered when you navigate to the URL

• Ex: http://localhost:3000/posts/new Wednesday, April 27, 2011

Partials • If there is a part of a view that is repeated in multiple views, its common practice to put it in a partial.

• Partials are located in the same folder as

the view file with the convention that they start with an underscore.

• Ex: app/views/posts/_links.html.erb Wednesday, April 27, 2011

Show View • Default show view generated by scaffold.

Wednesday, April 27, 2011

New View • Scaffolding gives you very DRY views.

Wednesday, April 27, 2011

Edit View • Since new and edit are basically the same view, the common attributes have been refactored into a partial called form.

Wednesday, April 27, 2011

Form Partial

Wednesday, April 27, 2011

Routing • The routes.rb file in the config directory manages routing URLs to controller actions.

• The entire routing interface has been redesigned in Rails 3.

• See http://edgeguides.rubyonrails.org/ routing.html for more details

Wednesday, April 27, 2011

Routing Example • From edgerails:

Wednesday, April 27, 2011

Routing Helper Methods • Routing helper methods are created for use in views.

Wednesday, April 27, 2011

Blog Routes • Since we only have one model, we only have one resource route.

Wednesday, April 27, 2011

Layouts • To reproduce a standard site layout across all views, layouts are used.

• The default layout is app/views/layouts/ application.html.erb

• Layout files use ruby yield statements to

insert desired content inside the site layout.

Wednesday, April 27, 2011

Layouts • Our application.html.erb file.

Wednesday, April 27, 2011

Rake • Ruby Make. • Rake is a software build tool like make or Ant written in Ruby.

• Applications out of the box come with

many rake tasks, and tasks can be created for things such as testing, data importing, new server deployments, etc.

Wednesday, April 27, 2011

Included Rake Tasks

Wednesday, April 27, 2011

Importing Course Info

Wednesday, April 27, 2011

Gems • Gems are ruby packages that are freely available on the web.

• Some examples of gems are: The mysql

gem for mysql connectivity, the BCrypt gem for data encryption, devise for robust user authentication and session management.

• Visit rubygems.org for a complete list of

gems (and to get the gem package itself).

Wednesday, April 27, 2011

links.each do |link| • For more in-depth information there are a ton of great resources on the web.

• http://www.railscasts.org • http://api.rubyonrails.org/ • http://edgeguides.rubyonrails.org/ 3_0_release_notes.html

Wednesday, April 27, 2011

Thanks For Listening • Now go make a Twitter that doesn’t have

the same stability problems as Twitter with your newfound rails knowledge.

• Make lots of money.

Wednesday, April 27, 2011

Related Documents

Riding The Rails
June 2020 12
Rails
June 2020 21
Replacing The Y Rails
June 2020 5
Riding The Bullet
June 2020 7
The War Of The Rails
December 2019 40
Winter Riding
December 2019 16

More Documents from "Juan PLC Salazar"

Riding The Rails
June 2020 12
May 2020 1
June 2020 5
Fase I -- Copia.docx
October 2019 21
June 2020 5