Static Pages

Logistics

  • Piazza
  • Check in codes starting this week
  • Homework

Rails Application Structure

  • app - the MVC + assets (JS + CSS + Images)
  • db -  information about the database
  • config - configurations + routes.rb 
  • Gemfile

The Rails Console

Type into the command line:

'rails console'

Rails console cont.

  • Runs your rails application without views
  • Helps with looking at rails/your app's behavior

rails server

Start your app locally

But First,

OO Programming in Ruby

Creating a Class

  • Calling 'new' on a Class creates instance
  • Logic on initialization is defined in the 'initialize' method
  • Instance variables are prepended with the '@' symbol

Inheritance

  • Inherit Methods from parent classes
  • All of Rails 'magic' occurs in the parent classes

Hash Optionals

  • Optionals are common in web development
  • Syntax goes like this
    • function_call first_arg, second_arg, option1: 5, option_2: :users, option_3: false

Now back to routing and static pages

HTTP Requests

  • Foundation for data communication on the internet
  • Defined methods/verbs
    • Get
    • Post
    • Put
    • Delete

Get

  • Only retrieve a resource
  • Can be cached/bookmarked
  • Limited data sent
  • Generally less secure
  • Focus of todays lecture

Post

  • Used to create a resource
  • Can NOT be cached/bookmarked
  • Unlimited data sent
  • Generally more secure

Puts

  • Used to modify a resource
  • Similar to POST
  • Requested to a particular resource

Delete

  • Used to delete a resource

Quiz

When going on facebook's home page what request is it most likely making?

  1. Get
  2. Post
  3. Put
  4. Delete

Quiz

When going on facebook's home page what request is it most likely making?

  1. Get
  2. Post
  3. Put
  4. Delete

Quiz

How about when you are editing the name on your profile?

  1. Get
  2. Post
  3. Put
  4. Delete

Quiz

How about when you are editing the name on your profile?

  1. Get
  2. Post
  3. Put
  4. Delete

Quiz

Creating a post?

  1. Get
  2. Post
  3. Put
  4. Delete

Quiz

Creating a post?

  1. Get
  2. Post
  3. Put
  4. Delete

Where we are in the MVC

We are going to through steps 1, 2, 6, 7, 8

Skipping 3, 4, and 5

No need for database

Let's do it in reverse

  • Create the HTML page called home.html
  • HTML/CSS is not the focus of this class
    • If interested take the web design decal
  • Put it in a subdirectory of views
    • let's call it pages (app/view/pages/home.html)

Controller for static pages

What do most static pages need?

routes.rb

  • Syntax for a get request
    • get "url", to: "controller#function"
  • For our example it is
    • get "home", to: "pages#home"
    • going to baseurl.com/home will go to PagesController's home method
  • How do we do the root url?
    • root to: "pages#home"
    • root "pages#home"
  • Let's create the about page!

rails generate controller

  • The following argument is the controller name
  • The rest of the arguments are optional methods

render

  • How does rails know which view to render?
  • What if we want to render a view that doesn't match?
  • In the controller call the render function
    • Syntax
      • render "action"
      • render "controller/action"

Embedded Ruby

  • Allows you to embed ruby logic into your views
    • <% code %> is the syntax for logic flow
    • <%= code %> is the syntax for rendering the evaluation of the code
  • The views have access to instance variables, which have @ symbols in front of them.

params

  • A hash of parameters you get with every request
  • Can be accessed with the syntax:
    • params[:key]
  • Look at your rails server output to see params being passed.

paths

  • Rails generates methods that will point to routes
  • get 'cats', to: 'dogs#bark'
    • generates a 'cats_path' that leads to the DogsController's bark method
    • can add an 'as' optional
      • 'cats', to: 'dogs#bark', as: 'lions' creates 'lions_path'
  • See all paths by running the rake routes command

HTML

HTML Tags

Box Model

CSS Attributes

http://www.w3schools.com/cssref/

Let's Code!

Lab Time!

  • https://github.com/rails-decal/fa15-hw2
  • Checkin Code: httprequest
    • Will remove in 5 minutes

Fall 2015 - Week 2: Ruby and Routing

By Rails Decal

Fall 2015 - Week 2: Ruby and Routing

  • 1,173