If you can't read please download the document
Upload
rory-gianni
View
686
Download
1
Embed Size (px)
Citation preview
Building Web Apps with Rails
VI
Session 5 Recap
User Model
Installing Gems with Bundler
Authentication with Devise
Session 5: Authentication
At present, anyone can CRUD
(Create Read Update Destroy)
Signed in UsersPublic
Session 6: Stocking Fillers...
More on Assets
AJAX
Orphans!
Your very own view helper
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.
The default behavior in Rails 3.1 and onward is to concatenate all files into one master file each for JS andCSS.
Pre-Processing in Assets
Asset helpers are available e.g.
.class { background-image: url() }
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
What assets do we have?
Shows assets available to application including stuff in gems.
Rails.application.config.assets.paths
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.
CSS Assets
Go to: 127.0.0.1:3000/assets/application.css
In assets/application.css:
// *= require_self// *= require_tree .
Cracking into AJAX
AJAX: Step 1
Add
:remote => true
to
link_to 'Destroy', station, confirm: 'Are you sure?', :method => :delete
AJAX: Step 2
Add id to element in view
Respond to javascript in controller
respond_to do |format| format.html { redirect_to stations_url } format.js end
AJAX: Step 3
Keep id of the station to be removed.
@remove_id = @station.id
Define your response javascript: destroy.js.erb
$('#station_').fadeOut();
Orphans!
It's nearly Christmas, we should help...
Orphans!
BY DESTROYING THEM.
Orphans!
In station.rb:
has_many :streams, :dependent => :destroy
Your Own View Helpers
A Globally RecognizedAvatar
Helper Files
These can be found in
firstfm/app/helpers
Are included depending on controller.
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
Helper: Now use it in your view!
Task! Using
Display the gravatar for the currently logged in user!
Deployment with...
&