We're going to build a job board in Rails using the tried-and-true method of following the errors that we make!
Rails generators will help us avoid some tedious file creation, but provide a lot less magic than scaffolding (which is what is used in the Suggestotron to create everything for a Topic all at once).
This means we'll a get a little less done today than we did when we built Suggestotron. But we're going to build an app in little pieces, so you can focus on understanding how the pieces fit together.
This is not a self-paced curriculum. You should use the discussion sections on each page to make sure everyone is together!
As you might have noticed, we're assuming you've already been to a RailsBridge workshop before or have otherwise already explored a Rails app, and are ready for deeper knowledge.
We're also going to skip deploying to Heroku this time around, but you can definitely use the instructions from the Suggestotron curriculum to deploy your app to the internet!
This curriculum is written for Rails 4. Things will get awkward / broken if you're using Rails 3, so if you skipped the Installfest, you need to upgrade to Rails 4 now.
Tips for everyone:
- When adding code, it's awesome for students to walk through the code line by line and say out loud what is happening. (i.e., "The string is being stored in the instance variable" or "The method
snorgleis being defined"). If you do it every time, you'll get really comfortable with the vocabulary of Rails!
- Error messages are your friend! Read them carefully, and practice understanding what Rails is telling you. Seeing an error and just diving back into your code is a natural reaction, but stop! Then read, think, and talk about what the error means before fixing it.
Working Effectively and Efficiently
We highly recommend you do the following:
- Bring up your terminal and open 2 tabs (Windows users, open two instances of Git Bash):
- Connect to your virtual machine in both of them.
- One is for regular terminal stuffs
- One will be for the Rails console. We'll explain later.
- Open your browser fresh or hide any windows you already have open.
- Bring up one window with two tabs
- One for this content
- One for interacting with your app.
- Open your text editor and do not ever close it. We're not quitters.
- Hide all extra applications. Turn off Twitter, IM, and all other distractions.
By minimizing the number of things you interact with, you reduce the amount of time spent switching between them and the context lost as you work through the lessons. Having 50 tabs open in your web browser gets confusing and wastes time.