Dissecting Ruby on Rails 5 – Become a Professional Developer

Dissecting Ruby on Rails 5 – Become a Professional Developer

English | MP4 | AVC 1280×720 | AAC 48KHz 2ch | 43 Hours | 9.62 GB

Don’t simply follow a tutorial, learn what it really takes to become a pro Rails developer with this immersive course.

Through the years I’ve constantly heard the same question from students: “I can follow a tutorial, but I don’t feel confident enough to build apps/features from scratch”. This course is my answer to that question. I’m not satisfied in simply teaching you how to build an application, my goal is to teach you to understand how to build professional web applications, not to simply follow a tutorial. This is the most comprehensive course I’ve ever put together and combines my 14+ years of development experience.

I took a completely different approach in building this course. This course is unique for a number of reasons:

  • Curriculum – After completing the initial course outline I sent it out to a group of CTOs and Senior Rails developers from around the world. I asked them to go through the list of features and add the full set of skills they look for when hiring Rails devs. The course outline literally doubled based on their input. So the features that we’re going to build throughout this course aren’t simply my idea of what it takes to build progressional grade Rails applications, it’s the combined knowledge over over a dozen premier developers from a wide variety of industries. One of the hiring managers who reviewed the outline responded to the outline and said, “If you send me developers who build this full set of features, I’ll hire them on the spot!”.
  • Deep Dives – Going through tutorials is great. However, many times courses that simply walk through the build out of a project skip over important concepts. For this reasons I have created a Deep Dive at the end of each section of this course. These guides select the most challenging topics of each section and give a detailed walk through of the concept so that you can completely understand how to work with the key features of the Rails framework.
  • Full Stack – Many courses promise to teach you how to become a full stack developer, but most of them simply gloss over the concepts that you need in order to build truly professional applications. This course was built to walk you through a real world approach to full stack coding. This includes: backend development with Ruby on Rails, front end coding with HTML/CSS/JavaScript/jQuery, along with advanced ways to use SQL for database management.
  • Immersive – This is not a light and easy course that you can go through in a weekend. This course was designed specifically for coding bootcamp students that have the goal of becoming professional developers. This means that there is over 35 hours of video lessons and you will build a professional grade Rails application by the time you have completed the course.

So with all that being said, let’s talk about everything that we’re going to build throughout the guides. We’re going to build a feature rich portfolio application that you can actually use for your own portfolio (I’m even using it for my own portfolio). Let’s walk through the full feature set of what the application will include:

  • Building out a professional Rails environment (if you’re on a PC I even built a free C9 dashboard that you can use for this course).
  • We’ll utilize Pivotal tracker to follow SCRUM project management best practices throughout the build of this application, just like you’ll do in a professional dev shop.
  • Examine how to work with Rails generators, including how to customize the generators so that you can have your very own scaffolds.
  • Work with data flow in Rails. One of my strongest beliefs is that if you can understand how data flow works in Rails, you can build anything! With that in mind we’ll take a step by step approach for understanding how data comes into a Rails app and how you can build features that utilize the process.
  • Manage a database. You’ll learn advanced SQL techniques for working with data in a Rails application, including how to manage data relationships between tables along with what it takes to implement efficient queries.
  • Best practices. Writing clean code is one of the key requirements of professional Rails developers, throughout the course we’ll walk through what professional grade code looks like and the common patterns you’ll need to know in order to build well written applications.
  • JavaScript and jQuery components. One of the hallmarks of a modern Rails application is the proper integration of JavaScript features. Throughout the course we’ll walk through advanced JavaScript features such as how to integrate drag and drop functionality for users and how to build dynamic forms that change based on user input, all without a page refresh!
  • Streaming Live Data/Page Updates with ActionCable. The top new feature in Rails 5 was definitely Action Cable, which allows for Rails to utilize web sockets and have live page updates. In this course we’ll build a real time commenting feature for our portfolio that will showcase your JavaScript skills to everyone who visits your new site.
  • API Integration. Because most modern applications need to communicate with the outside world, in this course we’ll build an integration with the Twitter API to pull in real time tweets into our portfolio application.
  • RubyGem Libraries. In addition to teaching you about how to use RubyGems in a Rails application, I also show you how to create your very own RubyGem from scratch and walk through how to use it in your application.
  • In addition to all of these features, we’ll also examine: advanced forms, how to integrate professional styles by leveraging Bootstrap 4, building a connection to AWS for file uploads, and how to deploy our application to the web.

In addition to the lectures, I also include the source code for each guide so that you can always have access to the full codebase for the application.

What you’ll learn

  • Build a professional Rails application.
  • Implement advanced JavaScript components, such as persistent drag and drop functionality and live page update via ActionCable into a Rails application.
  • Deploying a Rails application along with the ActionCable web socket feature to Heroku.
  • Build a Rails 5 application that utilizes multiple layouts.
  • Build jQuery and CoffeeScript components that can be utilized by the Rails application.
Table of Contents

Mac Environment Customization
1 The Application Were Going to Build
2 Section Introduction
3 Introduction to the Command Line Interface in Mac and Linux
4 Installing the X-Code Command Line Tools for Mac
5 Installing Git for Source Code Version Control
6 How to Install Homebrew on a Mac
7 Installing GPG Security System on a Mac
8 Guide to RVM for Ruby Management
9 Configuring RubyGems and Installing Rails
10 Installing the Postgres Database on a Mac
11 Installing and Working with the Sublime Text Editor
12 Deep Dive into the Command Line – Part 1 of 2
13 Deep Dive into the Command Line – Part 2 of 2

PC Environment Setup
14 Note to PC Users
15 PC Environment Setup Installing Virtual Box
16 Guide to Installing Ubuntu Linux in VirtualBox
17 How to Reboot a Linux Virtual Machine from the Terminal
18 Installing Desktop Applications and Ubuntu Navigation Tips and Tricks
19 How to Sign Up for a GitHub Account
20 How to Install Git on Linux and Connect to GitHub via SSH
21 How to Securely Install Node and NPM on Linux via NVM
22 Installing the Heroku CLI and the Full Deployment Lifecycle
23 How to Install and Work with Sublime Text in Linux
24 PC Setup Guide for Ruby on Rails and Postgres on Linux – Part 1 of 2
25 PC Setup Guide for Ruby on Rails and Postgres on Linux – Part 2 of 2
26 Fixing the Role Does Not Exist Error

App Creation and Project Planning
27 Section Introduction
28 Signing Up for a Project Management Account
29 Managing the Project Management Dashboard
30 Download Project Management Data
31 Importing Project Management Tasks into Pivotal Tracker
32 Creating a Rails Application
33 Generating a Blog for the Portfolio Application Using Rails Scaffolds
34 Analyzing the Rails Process Index and Show Actions
35 Analyzing the Rails Process New Create Update Edit and Destroy Actions
36 Analyzing the Rails Process Routing with Resources
37 Rails File System Overview
38 Updating the Project Management Dashboard
39 Deep Dive Analyzing the Application Generator – Part 1 of 2
40 Deep Dive Analyzing the Application Generator – Part 2 of 2

Implementing Version Control
41 Section Introduction
42 How to Sign Up for a GitHub Account
43 Generating SSH Keys to Securely Communicate with GitHub
44 Guide to GitHub
45 How to Update a .gitignore File to Securely Store Secret Credentials
46 Guide to the Markdown Syntax
47 Updating the Git Sprint in the Project Management Dashboard
48 Deep Dive Analyzing Version Control and Git – Part 1 of 2
49 Deep Dive Analyzing Version Control and Git – Part 2 of 2

Rails Generators
50 Section Introduction
51 Guide to the Rails Controller Generator to Build Pages Part 1 of 2
52 Guide to the Rails Controller Generator to Build Pages Part 2 of 2
53 Guide to the Rails Model Generator to Build out Data Specific Features
54 Guide to the Rails Resource Generator for Building Out the Portfolio Feature
55 Deep Dive Analyze Rails Generators and How to Customize a Generator – 1 of 2
56 Deep Dive Analyze Rails Generators and How to Customize a Generator – 2 of 2

Data Flow in Rails
57 Section Introduction
58 Building out a Seeds File for Generating Dynamic Sample Data
59 Implement an Index Action from Scratch in Rails
60 Build the New and Create Functionality from Scratch in Rails
61 Implement the Ability to Edit Database Records from Scratch in Rails
62 How to Use the Link To Method in Rails for Creating Dynamic Links
63 How to Implement the Show Action from Scratch in Rails
64 Building the Ability to Delete Items in Rails
65 How to Implement Custom Routes for Pages in Rails
66 How to Override the Rails Resources Routes for the Show Action
67 How to Implement Permalinks in a Rails Application – Part 1 of 2
68 How to Implement Permalinks in a Rails Application – Part 2 of 2
69 How to Use Enums in Rails to Manage Data Stages
70 How to Implement a Custom Action in Rails via a Button Click – Part 1 of 2
71 How to Implement a Custom Action in Rails via a Button Click – Part 2 of 2
72 Updating the Project Management Dashboard and Performing a Pull Request
73 Deep Dive Rails Routing and Data Flow – Part 1 of 3
74 Deep Dive Rails Routing and Data Flow – Part 2 of 3
75 Deep Dive Rails Routing and Data Flow – Part 3 of 3

Data Management in Rails
76 Section Introduction
77 Implementing Data Validations in Rails 5
78 Guide to Data Relationships in Rails
79 How to Implement Custom Scopes in Rails 5
80 How to Set Default Values in Rails 5
81 How to Use Concerns in Rails 5
82 Building an Additional ParentChild Relationship in Rails 5
83 Rails 5 Complex Forms Configuring Nested Attributes in the Model
84 Rails 5 Complex Forms Configuring Nested Attributes in the Form
85 Deep Dive Working with SQL and ActiveRecord in Rails 5 – Part 1 of 3
86 Deep Dive Working with SQL and ActiveRecord in Rails 5 – Part 2 of 3
87 Deep Dive Working with SQL and ActiveRecord in Rails 5 – Part 3 of 3

Rails 5 Authentication
88 Section Introduction
89 How to Install Devise in Rails 5
90 Using Devise to Implement Registrations and Login Functionality
91 Building Custom Routes for Authentication Pages with Devise in Rails 5
92 Enable Users to Logout and Dynamically Render View Content in Rails 5
93 How to Add Custom Attributes to a Devise Based Authentication System
94 How to Use Controller Concerns in Rails 5 for Devise Custom Attributes
95 Integrate Virtual Attributes to Extract First and Last Name Data from a User
96 Deep Dive Using BCrypt to Implement Encryption in Ruby

Ruby on Rails Controllers
97 Section Introduction
98 Rails Data Flow Review and Working with Params
99 Using Rails Sessions to Share Data Between Pages
100 Refactoring the Session Tracker into a Controller Concern
101 Working with Strong Params in a Rails 5 Controller
102 Deep Dive Building a Guest User Feature in Rails – Part 1 of 2
103 Deep Dive Building a Guest User Feature in Rails – Part 2 of 2

Working with Views in Rails
104 Section Introduction
105 How to Customize the Rails Master Layout File – Part 1 of 2
106 How to Customize the Rails Master Layout File – Part 2 of 2
107 Guide to Using Multiple Layout Files in Rails 5
108 Introduction to Partials in Rails 5
109 How to Send Data to Partials to Generate Custom Behavior in Rails 5
110 Guide to View Helpers in Rails 5
111 How to Use the Rails Content Tag Helper to Auto Generate HTML Code
112 Introduction to Rendering Collections via Partials in Rails 5
113 Guide to Manually Configuring Partials to Work with Collections in Rails
114 Guide to Helpful ActionView Helper Methods in Rails 5
115 Deep Dive Tips and Tricks to Working with ActionView in Rails 5 – Part 1 of 2
116 Deep Dive Tips and Tricks to Working with ActionView in Rails 5 – Part 2 of 2

Professional Debugging in Rails
117 Section Introduction
118 How to Utilize Puts Debugging in Rails
119 Guide to Byebug in Rails 5
120 Guide to Debugging with Pry in Rails 5
121 Proper Way to Implement Error Management in a Rails Application – Part 1 of 2
122 Proper Way to Implement Error Management in a Rails Application – Part 2 of 2

Using RubyGems
123 Section Introduction
124 How to Install Bootstrap 4 into a Rails 5 Application – Part 1 of 2
125 How to Install Bootstrap 4 into a Rails 5 Application – Part 2 of 2
126 Strategy for Building a Custom RubyGem
127 How to Build a RubyGem from Scratch – Part 1 of 2
128 How to Build a RubyGem from Scratch – Part 2 of 2
129 How to Publish a Gem on RubyGems.org

Implementing Authorization in Rails
130 Section Introduction
131 Introduction to Authorization and How to Install the Petergate Gem
132 How to Add Roles to the User Model in Rails 5
133 Guide to Implementing Petergate in a Rails 5 Application – Part 1 of 2
134 Guide to Implementing Petergate in a Rails 5 Application – Part 2 of 2

Working with Styles in Rails
135 Section Introduction
136 Portfolio Design Planning for Layout Specific Styles
137 Implementing the Initial Homepage Design in Rails 5 with Bootstrap 4
138 Building a Navigation Partial for the Master Application Layout with Bootstrap
139 Implement a Footer Along with Adding Method Arguments to a Rails View Helper
140 How to Embed a Google Map into a Rails Application
141 Guide to Updating the Styles for the Devise Edit Account Page in Rails
142 How to Override Default Bootstrap Styles for Text Alignment in the Card Class
143 Implementing Styles for the Devise Registration Page with Bootstrap 4
144 How to Design the Login and Password Pages with Bootstrap 4 Form Styles
145 How to Set Default Values for View Helper Method Arguments in Rails 5
146 Integrating a Different Design for a Separate Blog Layout in Rails 5
147 How to Use Bootstrap 4 to Add a Custom Nav Bar to a Blog Layout in Rails
148 Customizing the Design for the Blog Index Page with Bootstrap 4
149 Guide to Adding Styles to the Blog Show and Form Pages with Bootstrap 4
150 Implementing Partials Pagination and Font Awesome Icons – Part 1 of 2
151 Implementing Partials Pagination and Font Awesome Icons – Part 2 of 2
152 Initial Design for the Portfolio Index Page with Bootstrap 4
153 Integrating the Portfolio Animated Navigation Slider Footer and Index
154 Using the Bootstrap 4 Grid Layout to Style the Portfolio Show Page in Rails
155 Implementing Bootstrap 4 Forms for the Portfolio Form Pages
156 How to Build a View Helper to Dynamically Generate a Nav Bar – Part 1 of 2
157 How to Build a View Helper to Dynamically Generate a Nav Bar – Part 2 of 2
158 Deep Dive Rails Asset Pipeline Part 1 of 2
159 Deep Dive Rails Asset Pipeline Part 2 of 2

Rails JavaScript
160 Section Introduction
161 How to Integrate a Position Attribute and Custom Scope in Rails
162 Installing the jQuery UI and html5sortable JavaScript Libraries in Rails 5
163 Initial Implementation of Drag and Drop Interface in Rails 5
164 Implementing Drag and Drop Functionality into a Ruby on Rails 5 App Part 1 of 2
165 Implementing Drag and Drop Functionality into a Ruby on Rails 5 App Part 2 of 2
166 Implementing Authorization Rules for Drag and Drop Feature with Petergate
167 Deep Dive jQuery CoffeeScript in Rails

Adding Images to a Rails Application
168 Section Introduction
169 Introduction to Using Images and the Rails Asset Pipeline
170 How to Add a Full Size Image Background in Rails with Bootstrap 4
171 How to Set a Full Size Video Background in Rails with Bootstrap 4
172 Deep Dive Installing and Configuring Carrierwave for Image Uploads in Rails 5
173 Deep Dive Integrating Connection to AWS S3 for File Hosting with Carrierwave
174 Implementing File Upload Button Styles and Refactoring Placeholder – Part 1 of 2
175 Implementing File Upload Button Styles and Refactoring Placeholder – Part 2 of 2

Guide to Forms in Rails
176 Section Introduction
177 Difference Between form form and form tag in Rails – Part 1 of 2
178 Difference Between form form and form tag in Rails – Part 2 of 2
179 How to Integrate Cocoon in Rails 5 for jQuery Nested Forms
180 Guide to Integrating Alerts that Automatically Fade Away in Rails 5
181 Refactoring Alert Notifications to Use a Shared View Helper in Rails
182 Deep Dive How to Build an HTML Form from Scratch the Works with Rails

Rails Lib Directory
183 Section Introduction
184 Integrating the Twitter Gem to Pull in Tweets in Rails 5
185 How to Render Tweets on a Rails View Page
186 Building a Parser View Helper Method to Make Twitter Links Clickable in Rails
187 Customizing the Styles for the Tech News Page with Bootstrap 4

Live Data in Rails 5 with ActionCable
188 Section Introduction
189 Running the Comment Generator and Installing the NoSQL Redis Database in Rails 5
190 Building the Comment Form and Required Controller Actions – Part 1 of 2
191 Building the Comment Form and Required Controller Actions – Part 2 of 2
192 Refactoring the Comment Form into a Partial and Implementing Data Validations
193 Building the jQuery Functions for Processing Comments – Part 1 of 2
194 Building the jQuery Functions for Processing Comments – Part 2 of 2
195 How to Create a Broadcast with ActionCable in Rails 5
196 Guide to Implementing Live Data Updates in a Rails 5 Application – Part 1 of 2
197 Guide to Implementing Live Data Updates in a Rails 5 Application – Part 2 of 2
198 Styling the Comment Section and Implementing Gravatar Based Thumbnails in Rails

Rails Best Practices
199 Section Introduction
200 Planning Final Project Updates and Assignment
201 Building a Scope to Show the Most Recent Blog Posts and Hiding Draft Posts
202 Hiding the Show Page for Blogs in Draft Mode in Rails 5
203 How to Add a Drop Down Form Element in Rails 5 for ParentChild Relationships
204 Using the Controller Generator to Build the Topic Features – Part 1 of 2
205 Using the Controller Generator to Build the Topic Features – Part 2 of 2
206 How to Build a Widget for the Blog to Render Topics in Rails 5
207 How to Implement Radio Buttons in a Rails Form to Update Enum Values
208 Guide to Integrating Markdown and Syntax Highlighting in a Rails 5 Application
209 Integrating Breadcrumbs and Icons for the Blog Show Pages
210 Building a Partial for Managing Admin Actions for Blog Posts
211 How to Implement a Responsive Navigation Bar with Bootstrap 4
212 Updating the SourceSession Tracking System for the New Layouts
213 How to Integrate a Favicon in Rails 5
214 Implementing Responsive Image Components for the Portfolio Layout
215 Adding Card Styles to the About and Contact Pages
216 How to Implement Collapsable Content Components in a Rails 5 Application
217 How to Integrate Bootstrap Progress Bars in a Rails Application
218 How to Integrate Custom Fonts in a Rails 5 Application
219 Updating the Seeds File in Rails

Deployment
220 Signing Up for and Creating a New Heroku Application
221 How to Deploy a Rails 5 Application to Heroku
222 Working with the Rails Console on Heroku
223 Installing Redis on Heroku for ActionCable Commenting Feature
224 Configuring Action Cable to Work on Heroku

Course Update
225 How to Implement the Typed.js library into a Rails 5 application
226 How to Install and Configure Webpack Yarn and jQuery into a Rails 5.1 App
227 How to Work with Encrypted Credentials in Rails 5.2

Rails 6 Introduction to Ruby on Rails 6
228 How to Generate a Ruby on Rails 6 Application
229 The Topics Well Cover in the Dissecting Rails 6 Course
230 Overview of the App Directory in a Ruby on Rails 6 Application
231 Overview of the Bin and Config Directories
232 Overview of the Database Lib and Log Directories in a Rails 6 Application
233 Deep Dive Node Modules Directory in Rails 6
234 Overview of the Package JSON and Yarn Lock Files in Rails 6
235 Walk Through of the Public Storage Tmp and Vendor Directories
236 Overview of the Root Files on a Ruby on Rails 6 Application
237 How to Work with a Gemfile in a Ruby on Rails Application
238 Overview of the Post CSS Configuration and Rakefile in Rails 6

Ruby on Rails Fundamentals
239 Deep Dive How to Work With and Customize the Rails Server
240 Introduction to Controllers in Ruby on Rails 6
241 How to Automate Processes with the Rails Controller Generator Options
242 Building a Full Authentication Feature in Rails with Devise
243 Implementing Dynamic Behavior into Rails Views
244 How to Manage User Access to Pages in Ruby on Rails
245 Overview of the Model Generator in Rails 6
246 How to Create Edit and Delete Records in the Database with the Rails Console