Ruby on Rails 4---A Test-Driven Approach
4.3 (56 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
1,530 students enrolled
Wishlisted Wishlist

Please confirm that you want to add Ruby on Rails 4---A Test-Driven Approach to your Wishlist.

Add to Wishlist

Ruby on Rails 4---A Test-Driven Approach

Go from a Rails novice to intermediate with confidence and land a job as a developer. Write code the way the pros do it.
4.3 (56 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
1,530 students enrolled
Last updated 1/2016
Current price: $12 Original price: $100 Discount: 88% off
3 days left at this price!
30-Day Money-Back Guarantee
  • 19 hours on-demand video
  • 5 Articles
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion

Training 5 or more people?

Get your team access to Udemy's top 2,000 courses anytime, anywhere.

Try Udemy for Business
What Will I Learn?
  • Do Test-Driven Development in Ruby on Rails, write e-commerce applications, do credit card processing and send emails from their Rails applications
View Curriculum
  • Students don't have to do anything before they start the course. However, for those completely new to Rails, it will be good to go through some basic Rails tutorials first before starting this course.

*** Revisions with Rails 4.2 and RSpec 3 coming soon ***

This course teaches students how to write tests and use those tests to drive the development of Ruby on Rails applications (Test-Driven development or TDD). In the process, an electronic commerce (e-commerce) application in the form of an online bookstore will be developed to demonstrate many concepts in Rails.

This course is for anybody who has played around with Ruby on Rails but does not know how to do TDD. It is also ideal for people transitioning from other languages/frameworks. If you can write "Hello World" in Rails, you can take this course. Students should take this course to learn the valuable skill of TDD and move into the realm of professional software development.

Test first development is a valuable skill that is required in the software development field. Even if you don't intend to become a professional programmer, the knowledge gained will make you a better programmer.

Many introductory courses in Rails do not teach TDD. That is unfortunate because TDD is not all that difficult and the earlier one learns it the better. By taking this course, you will be well equipped to develop applications backed by tests.

The course is project based and for this reason, students have to get their hands dirty and do all the practice exercises mentioned in the videos. The course covers writing authentication machinery from scratch, basic authorization, sending emails from the application. It also covers how to use secure random tokens to make the application more secure.

Email and secure random token are used to craft a password resetting machinery to help users reset their passwords in a secure manner. Students will learn how to integrate credit card processing into their application and charge the customers.

Students will also learn how to handle one-to-many and many-to-many relationships and, in the process learn how to handle nested-forms in Rails.

Students who take this course will be well equipped to develop rock solid web applications in Rails. The course is over thirteen (13) hours long and it can take between two weeks and a month to complete depending on the student's learning style.

Who is the target audience?
  • Anybody who knows how Ruby on Rails works but does not know who to do test-driven development. It is also ideal for people transitioning from other frameworks to Rails.
Compare to Other Ruby On Rails Courses
Curriculum For This Course
122 Lectures
11 Lectures 35:10

Description of the split of the two parts of the course

Preview 00:52

Overview and explanation of developing locally vs. using cloud9 IDE

Overview and kickoff of local dev vs cloud9

Install ruby locally on a mac

Local installation of ruby

Installation of Rails in local development environment

Installation of Rails in local env

Installing and using git for version control

Version control with Git

Sign up for cloud based development environment

Sign up for cloud9 IDE

Getting familiar with cloud9 environment

Familiarity with cloud IDE

Getting familiar with directory tree of cloud9

Cloud9 directory familiarity

Installing Ruby on Rails in cloud IDE

Installation of Rails in cloud IDE
Introduction to testing
8 Lectures 40:29

Model View Controller structure of Rails Applications

MVC structure of Rails Apps

Unit, Functional and Integration tests explained

Introduction to different kinds of automated testing

Create a new Rails application in local env

Start a new rails app

Adding gems necessary to setup automated testing environment

Advanced automated testing setup

Code for the Guardfile used in Minitest

Guardfile code

Using ruby version manager and other unix processes

RVM usage and other unix processes

Write the first test for index action

First test for articles index

Build the feature to pass the test

Build articles listing page and turn test suite green
Setup with code repositories and production deploy
4 Lectures 18:06

Introducing items covered in section 3

Introduction to section 3

Sign up for online code repository

Sign up for bitbucket

Push repository to bitbucket to save work

Create git repo and push code to bitbucket

Sign up for an account with Heroku and deploy code to production

Signup for Heroku and deploy to production
Learn unit testing to build models using TDD
6 Lectures 01:07:49

Section 4 introduction of material covered

Introduction to section 4

Part 1 of 2 in example of spec and test creation for a model

Unit test example model part 1: spec and test creation

Completion of unit test example 1

Unit test example model part 2: recipe validations and completion

2nd example of model with unit tests, part 1 of 2

Unit test example for users part 1: spec and tests

Unit test example model 2, part 2 of 2 with valid email regex and validations

Unit test example for users part 2: email regex and validations

Wrapping up section 4

Section 4 conclusion
Implement TDD for model and wrap up unit testing
4 Lectures 25:49

Write spec and tests for creating article model

Create article model and articles table with spec and tests

Complete articles model by creating and passing tests

More tests and validations for article model

Use TDD to create users

Homework assignment: Create users tests and model

Conclusion of part 1 of course using minitest

Section 5 conclusion and handoff to part 2 of course
Setup of Development Environment and Writing Model Specs
8 Lectures 01:22:55
Installing Ruby and Rails

Setting up a Github Account

Complete Application Files

Test-Driven Development

Author Model Specs -- Implementation and Validation
Writing Authors Controller Specs
8 Lectures 01:46:46
Specs for the 'index' and 'show' actions

Specs for the 'new' action

Styling Author New Form

Specs for the 'create' action --- Unsuccessful Path

Specs for the 'edit' and 'update' actions---Successful path

Specs for the 'edit' and 'update' actions---Unsuccessful path

Creating Publisher
1 Lecture 14:15
Creating Publisher Model and Introducing Shoulda Matchers
Relationship between entitities
2 Lectures 14:06
Dealing with One-to-Many Relationship Between Publisher and Book

Dealing with Many-to-Many Relationship Between Author and Book
Writing Feature Tests
2 Lectures 23:36

"Creating Author" Feature Test---Failure Path
14 More Sections
About the Instructor
Mashrur Hossain
4.4 Average rating
7,106 Reviews
52,115 Students
10 Courses
Technology Professional and Entrepreneur

Hi, I'm Mashrur, I have been a technology professional for over a decade and have degrees in Computer Science and Economics

I have worked with Enterprise Software Systems throughout my career with roles played in analysis, development and management. I lead projects using both agile and waterfall methodologies and am well versed in the inner workings of the software development and delivery world.

During my career, I've realized how much I enjoyed training new hires and new team members and helping them succeed. I've dedicated a good amount of time over the last 7 years on-boarding new analysts and developers and working with them to build and maintain systems which puts me in a very unique position of knowing what new entrants to a field or subject need to succeed. I strongly believe in a focus on fundamentals and practice and not in shortcuts or gimmicks.

I'm very passionate about web application development and I prototype and build web apps in entrepreneurial pursuits. Ruby on Rails has proven to be a very strong force in this field and is especially powerful for startups looking to prototype ideas rapidly and subsequently building on that platform as the ideas catch on.

So join me for my comprehensive Ruby on Rails Developer courses as I guide you through the world of web application development using Rails and bringing your ideas to life.

Emmanuel Asante
4.2 Average rating
472 Reviews
5,149 Students
4 Courses
Mining Software Developer and Freelancer

I studied mining engineering and information systems. I completed a Diploma in Datametrics at the University of South Africa with a specialization in Information Systems.

Whilst working in the mines, I developed various mining, rock mechanics and geological applications using languages ranging from Perl, Turbo Pascal to C#, Java and Ruby. In particular, I developed a mining production information management system, as well as a pit crew performance management system, both for Thompson Creek Metals (Endako Mines), and a client management application for Snowden Mining Industry Consultants, using Ruby on Rails. I currently do freelance web development in Ruby on Rails.