Learn Ruby on Rails For Web Development By: John Elder Codemy.com Learn Ruby on Rails For Web Development By: John Elder Published By Codemy.com Chicago, IL USA ISBN:978-0-692-36421-5 First Edition Copyright © John Elder and Codemy.com http://www.Codemy.com TABLE OF CONTENTS ABOUT THE AUTHOR INTRODUCTION What Is Ruby On Rails Who This Book Is For Do You Need to learn Ruby? What We'll Be Making Follow-Along Videos Conventions Used In The Book CHAPTER ONE Development Environment Installing Windows/Mac/Linux vs Virtual Environment Rails And Ruby Versions Unix Command Line Commands Creating Our First App (Virtual vs Mac/Linux) Rails Server MVC Explained Gems And The Gemfile Adding Pages To Your App Creating An Index Page Changing Routes To Index Page Get vs Root Version Control With Github And Bitbucket Installing Git Rolling Back Code Using BitBucket Using Github Hosting Our App On Heroku Setting Up Heroku Pushing Code To Heroku Solving Problems via Google Search StackOverflow Codemy.com CHAPTER TWO Building Out Our Sample App Adding More Pages Adding Pages To The Controller Adding Routes Creating Links With Embedded Ruby Rake Routes Partials Rendering Partials Understanding layouts/application.html.erb CHAPTER THREE Adding Bootstrap Wrapping Your Site In A Container Class Styling Things Adding A Jumbotron Adding Buttons Adding A Navbar To The Header Customizing Bootstrap CHAPTER FOUR Adding Users With Devise Adding Flash Messages Generating Views Generating Users Working With Databases In Rails Development DB vs Production DB Adding Postgres Changes To Gemfile For Heroku Pushing Migrations To Postgres And Heroku Viewing Devise Views Styling Devise Views Bootstrap Forms Bootstrap Panels Adding Links To Devise Pages Determining If User Is Logged In/Out CHAPTER FIVE Building A Scaffold Database Data Types Rake DB:Migrate Delete Scaffold CSS File Scaffold Views CRUD Scaffold Controller Added Table To Database Pins Index Page CHAPTER SIX Authorizing Users Rails Associations Creating Associations Must Be Signed In To Crate Pins Summing Up CHAPTER SEVEN Uploading Images To Our App With Paperclip Installing ImageMagick Installing Paperclip Changing Our Web Forms To Allow Images Updating Pins Index And Show Page To Show Images Saving Images To S3 To Appear On Heroku Create S3 Bucket Generate Amazon AWS Secret Keys Adding Bucket And Secret Keys To Heroku CHAPTER EIGHT Styling With JQuery Masonry And Adding Pagination Updating Pins Index Page Layout Making Pins Images Clickable Installing Masonry And Turbolinks Adding CoffeeScript Updating Pins CSS Stylesheet Updating Pins Index For Masonry Adding Panels To Pins Index Page Tweaking Pins Show Page Making Site Mobile Friendly Reordering Pins Adding Pagination Making The Pins Index Page Our Main Homepage Adding User Names Generating User Migration Updating Web Forms To Ask For Names Updating Controllers To Accept Names From Forms CHAPTER NINE Tweaking The Look And Feel And Finishing Up Customizing Boostraply.css.scss Adding URL's To Your Heroku App Adding Sub-Domains Adding Full Domains CHAPTER TEN Conclusion APPENDIX A Special Codemy.com Discount Offer $22 Off Membership ABOUT THE AUTHOR John Elder is a Web Developer, Entrepreneur, and Author living in Chicago, IL. He created one of the earliest online advertising networks in the late nineties and sold it to publicly traded WebQuest International Inc at the height of the first dot-com boom. He went on to develop one of the Internet's first Search Engine Optimization tools, the Submission-Spider that was used by over three million individuals, small businesses, and governments in over forty-two countries. These days John does freelance web development work, writes about Programming, Growth Hacking, and Internet Advertising, and runs Codemy.com the online school that teaches coding, Internet Marketing, and entrepreneurship to thousands of students. John graduated with honors from Washington University in St. Louis with a degree in Economics. He can be reached at [email protected] INTRODUCTION "Rails? What a bloated waste of time...I'll NEVER use it for anything...ever." That was really the first thought I had about Rails when I first looked into using it almost a decade ago. I'm an old school PHP guy who always built websites by simply punching out HTML and PHP onto Windows Notepad by hand, saving the file and uploading it to my regular apache web server using basic FTP software. Compared to that, Rails seemed like a massive and unnecessary sort of thing. Who needs a whole big framework just to build a simple website? And talk about complicated! The first time I tried to install Rails, I gave up in complete frustration after about an hour and a half. Compared to hand-coding some HTML and PHP on notepad and then FTP'ing it up to my server, this Rails thing seemed borderline insane! In fact, it wasn't till recently that I even bothered to check out Rails again, and I'm glad I did because once you get past the insanity that is Rails installation...Rails is a dream to use! It's just...fun! You can do so much with Rails, so quickly, that it makes anything else seem crazy by comparison...even basic PHP. It's true, there's a bit of a learning curve...in fact, it's unnecessarily hard to get started using Rails in the beginning unless you have someone to guide you through it (that's where this book comes into play). But once you get past a few initial rough patches, Rails is really quite easy...and I've been there so I can ease you through those initial bumps along the way. In fact, I think you'll be surprised just how quickly you'll be building apps... SO WHAT EXACTLY IS RUBY ON RAILS? Ruby on Rails is an open source web development framework written in the Ruby programming language that makes creating apps and websites incredibly easy. It uses something called a model/view/controller architecture that does a lot of the dirty work of dealing with databases and things like that for you, allowing you to focus on what's important to develop your app with speed and ease. It was created by David Heinemeier Hansson back around 2004 - 2005 ish and quickly became one of the most popular app frameworks in the world. Many popular sites use it, including Groupon, Indiegogo, Airbnb, Yammer, SoundCloud, Scribd, Shopify, Hulu and many many others. Twitter was initially developed using Rails. Yep. WHO IS THIS BOOK FOR? This book is for the absolute Rails beginner. You don't need to have any prior experience with Rails whatsoever. It'll be helpful if you have some web development experience of some sort (a basic understanding of HTML is a plus, Javascript is a plus too) but you certainly don't need to know anything at all to get started with this book. I'll walk you through absolutely everything you need to know step by step. DO YOU NEED TO LEARN THE RUBY PROGRAMMING LANGUAGE? The first thing that most people tend to ask me is whether or not you need to learn the Ruby programming language to use Rails. Though it is called Ruby on Rails, you don't really need to know Ruby to start using Rails to develop web apps. We'll be using some simple embedded Ruby along the way (embedded Ruby is