ror 101: session 6

22
Building Web Apps with Rails VI

Upload: rory-gianni

Post on 13-Jul-2015

324 views

Category:

Technology


5 download

TRANSCRIPT

Page 1: RoR 101: Session 6

Building Web Apps with Rails

VI

Page 2: RoR 101: Session 6

Session 5 Recap

● User Model● Installing Gems with Bundler● Authentication with Devise

Page 3: RoR 101: Session 6

Session 5: Authentication

At present, anyone can CRUD

(Create Read Update Destroy)

Signed in Users Public

Page 4: RoR 101: Session 6
Page 5: RoR 101: Session 6

Session 6: Stocking Fillers...

More on Assets

AJAX

Orphans!

Your very own view helper

Page 6: RoR 101: Session 6

The Asset Pipeline

NEW in Rails 3.1!

“A framework to concatenate and minify or compress JavaScript and CSS assets.”

Also, enables CoffeeScript, Sass and ERB for assets.

Page 7: RoR 101: Session 6

Pre-Processing in Assets

Asset helpers are available e.g.

.class { background­image: url(<%= asset_path 'image.png' %>) }

Page 8: RoR 101: Session 6

The Asset Pipeline: Locations

app/assets – your app's assets

vendor/assets – not maintained by you

lib/assets - maintained by you but not app specific

public/ – old skool static location

Page 9: RoR 101: Session 6

What assets do we have?

Shows assets available to application including stuff in gems.

Rails.application.config.assets.paths

Page 10: RoR 101: Session 6

JS Assets

Go to: 127.0.0.1:3000/assets/application.js

In assets/application.js:

//= require jquery //= require jquery_ujs//= require_tree .

This is a sprockets manifest file.

Page 11: RoR 101: Session 6

CSS Assets

Go to: 127.0.0.1:3000/assets/application.css

In assets/application.css:

// *= require_self// *= require_tree . 

Page 12: RoR 101: Session 6

Cracking into AJAX

Page 13: RoR 101: Session 6

AJAX: Step 1

Add

:remote => true

to

link_to 'Destroy', station, confirm: 'Are you sure?', :method => :delete

Page 14: RoR 101: Session 6

AJAX: Step 2

Add id to element in view

  <tr id = "station_<%= station.id %>">

Respond to javascript in controller

respond_to do |format|  format.html { redirect_to stations_url }  format.js end

Page 15: RoR 101: Session 6

AJAX: Step 3

Keep id of the station to be removed.

@remove_id = @station.id

Define your response javascript: destroy.js.erb

$('#station_<%= @remove_id %>').fadeOut();

Page 16: RoR 101: Session 6

Orphans!

It's nearly Christmas, we should help...

Page 17: RoR 101: Session 6

Orphans!

BY DESTROYING THEM.

Page 18: RoR 101: Session 6

Orphans!

In station.rb:

has_many :streams, :dependent => :destroy

Page 19: RoR 101: Session 6

Your Own View Helpers

A Globally Recognized Avatar

Page 20: RoR 101: Session 6

Helper Files

These can be found in

“firstfm/app/helpers”

Are included depending on controller.

Page 21: RoR 101: Session 6

Adding a Gravatar Helper

require 'digest/md5'

def gravatar_url_for(email)  return  "http://www.gravatar.com/avatar.php ?gravatar_id= #{Digest::MD5::hexdigest(email)}"end

Page 22: RoR 101: Session 6

Helper: Now use it in your view!

Task! Using

<%= gravatar_url_for(email) %>

Display the gravatar for the currently logged in user!