Late last year I completed the Back End Web Development (a purely Ruby on Rails) course with General Assembly and I wanted to share a couple of the things I've learnt during my WDI course that I wish I knew back then.
Pry - Pry is to ruby programming what Jesus is to Christians. It's our saviour. When doing the Back End course I was blissfully unware of this gem (see what I did there?). My instructor had recommended a similar gem called debugger but I could never seem to get it working. This resulted in many frustrating hours wasted trying to figure out exactly what was / was not present in my params hash. Pry makes debugging a breeze. Simply add "require 'pry'" to your code, then add "binding.pry" at the point in your code where you want to launch into pry in terminal. Finally, type params to view what's inside the hash. You can also use "ls" while in pry to list all local / instance variables. It also makes creating some basic seed data to test a new model or relationship easy.
Zen Coding - This greatly reduces the amount of shitty HTML code you need to write and saves huge amounts of time. The beauty of Zen Coding is that it uses CSS syntax, so it's not like you are learning some arbitrary new syntax for this purpose.Simply type some CSS and press TAB and blam! your HTML is generated. In addition you can do things like "ul>li*3" which will generate an Unordered List with 3 List Items. Even better is just type "!" and press TAB to get a basic HTML template generated in seconds.
How you install this depends on what editor you have so look here for details https://code.google.com/p/zen-coding/. For Sublime Text 2 you need to use the Package Manager to install "Emmet"
Direct Database Access - During my previous course I was fully aware that a 'model' is an object that represents a row in the corresponding table in the database but had no idea how to view the database. How you do this will depend on if you're using postgres, sqlite3 or something else but it is definitely worth finding out.
With some fairly basic SQL knowledge this gives you a huge amount of visibility of what is going on with your program rather than solely relying on your models in Ruby. This is particularly useful in diagnosing why your relationships aren't working or even just to check that your models are in fact saving.
To access your database from terminal...
SQLite3
Navigate to where your .db file is
sqlite3 [databasename.db]
type ".schema" to display your table structure
Postgres
Make sure postgres.app is actually running!
psql [database_name]
type "\d" to describe (display the tables)
From here you can run queries i.e. "select * from table_name;" and view the contents of your database.
Ruby Warrior - This game is amazing and educational so you should play it...
https://www.bloc.io/ruby-warrior