Total Ruby on Rails
Take your Ruby on Rails applications to the next level by taking you apps to the last mile and ensuring that they are maintainable, resilient and fully tested. In this course students will learn how to: Understand MVC and Rails implementation of MVC, Rails Fundamentals, Using Test-driven Development (TDD) and Behaviour-driven Development (BDD) to build robust applications, Refactoring techniques to make your code more maintainable, Using and integrating the GEMS and Plug-ins used in successful production Rails environment, Scaling and performance optimizations, Advanced Web 2.0/AJAX techniques, Advanced Deployments, and Advanced Monitoring.
Session Agenda
Sessions begin at 9AM and end at 5PM. Attendees must bring their own laptop.
Day 1
- Beginning Rails
- Creating dynamic pages with Rails
- Simple Model Validation
- Storing and Retrieving from the Session
- Using Scaffolds for rapid prototyping
- Creating Models that interact with the database
Day 2
- Beginning ActiveRecord
- The ActiveRecord Pattern
- ActiveRecord object life-cycle
- Model Class, Database Tables, Primary Keys, Foreign Keys
- Configuring and Connecting to the database
- Performing CRUD operations
- ActiveRecord::Base
- Conditions
- Finders
- Data Validation
- Entity Relationships
- Inheritance
- Migrations
Day 3
- Beginning ActionView
- How ActionView fits into MVC
- Leveraging XHTML and CSS
- ERB and RHTML
- Templates
- Partials
- Layouts
- Handling User Input
- The Public Directory
- Formatting, Linking, and Pagination
- Builder Templates
- JavaScript and RJS
- Testing in Rails
- Rails Test Mode
- Unit Testing
- Functional Testing
- Integration Testing
- Behaviour-Driven Development
- Introduction to RSpec
- Using RSpec Spec Framework
- Using RSpect Scenario Framework (Cucumber)
- Beyond Test::Unit with Shoulda
Day 4
- Production-Ready Rails
- Tagging Support with ActsAsTaggable
- Authentication with ActsAsAuthenticated and RestfulAuthentication
- Securing your Rails applications: Cross-site Scripting, URL and Form Manipulation, SQL injection, Cross-site requests
- Globalization/i18n support
- Performance Optimizations: Measuring/Profiling, Caching
- Deployment Options
- Deployment with Capistrano and Vlad
- Advanced Rails - 1
- Fat Models, Skinny Controllers
- Action Mailer
- Web Services
- Advanced AJAX
- File Uploads
- Rails and Flash
Day 5
- Advanced Rails - 2
- Acceptance Testing with Selenium/Watir
- Selecting a production platform for your Rails applications
- Advanced Capistrano and Vlad recipes
- Page, Action, Fragment and ActiveRecord caching
- ActiveRecord extensions for complex ORM
- Database, Controller and Testing Recipes
- Caching with Memcache
- Rails on the Cloud: Deploying to EC2