When I first sat down to learn Rails, I thought, "A week, maybe two... ." 

Yeah, right!

I've now learned that watching a 1hr 20min tutorial video from Michael Hartl will take me about a day.  That's including:
  • pausing and rewinding to catch up (typing) and to be sure I understand.
  • verifying locally and on Heroku that everything is working right
    (I'm still leary of Heroku, see my previous posts.)
  • flipping back-and-forth between the video and the PDF versions (especially where there might be large CSS to copy-and-paste.
  • taking regular breaks to shake my head (and make sure that I can remember what I just read/did).
So, I'm learning that patience (with persistence) is my best combination.
... that and keeping a window to StackOverflow.com open for any weirdness that creeps up!
 
 
Small victory dance.  (My Heroku solution was here.)

Knowing how much more there is to come, I'm a little overwhelmed.

By the way, big kudos to the people who provide answers at StackOverflow.  For all the scouring of the web that I've been doing, the best answers keep coming from there.   Thanks to you all!

Now, back at the tutorial!
 
 
I've read all over the web that "deploying to Heroku is totally painless!"  Wow.  2 days later, and my best answer was to start over, line by line.

Now, granted, I'm a complete newbie to Rails, so I'm sure to make every mistake possible.  But, wow, Heroku has been a complete pain in the ass!

First, I'm discovering that Heroku doesn't believe in error messages.  They simply state:
  • "We're sorry, but something went wrong. We've been notified about this issue and we'll take a look at it shortly."
Now, maybe I'm supposed to "tail" the log files to find out what's happening.  But more specific error messages might be nice!!!!!  Oh, and the whole "we'll take a look at it" is completely bogus.  In my 3 days, I've seen this fail screen so many times, and I've never even had a popup in my "My Apps" page to say, "Hey, see there's a problem."  (At this point, I'd even take a trained professional's advice, if they were offering $50/hr to give me some tips.  They already have my credit card number...)

Second, Git is a newbie nightmare!  Seriously!  All I wanted to do was back up 5 commits!  How hard should that be?  I wanted everything I had done in those 5 commits to be UNDONE.  Isn't that the point of a versioning system?  Yeah, well, if there's a way to do this, then please let me know.  After searching all over the web and trying a number of "solutions", I ended up starting the tutorial over from scratch.  (Write one line of code, git commit, git push, git push heroku, test/verify.)  All the TDD that RSpec uses is great, and all the local testing passed with flying colours!  Then, upload to Heroku and watch it fail! 

So, now I'm trying to figure out what exactly is the cause.  I'm completely baffled, but so pissed off that I won't give it up.  Maybe I'll post more here as I go.

For those of you who are curious, here are my Heroku failures to-date (all of which yielded the exact same error screen described above):
  1. If you use an undeclared variable. 
    e.g. <%= link_to "Home" home_path %>  # Better specify home_path!!!
  2. Use coffee-rails.
    I'm still trouble-shooting this one, so I'll have to post more later.
  3. No, coffee-rails, which I think serves my JavaScript, isn't the problem.  The problem is that my "assets" aren't "precompiled".  Yeah.  In the olden days, compilers were for C, and so I guess I have much to learn.
  4. Am currently going through my "heroku log" files, after reading about them here.  I chose to use the following to get the last 200 lines into a local log file:
  • heroku logs -n 200 > log/heroku.log

    This is where I discovered the "precompiled assets" issue.  How to solve this one?  I will wait and look for that tomorrow... or maybe Monday...

    Note: Yes, it took until Monday, and I finally found my solution!  Why this wasn't more obvious, I'll never know.  See Jeppe Liisberg's solution.
And, in searching for this answer, I discovered the instructions that I should have started with (Rails3 on Heroku/Cedar and Rails3.1 on Heroku/Cedar).  I can't remember why I decided to invoke "--stack cedar" but somebody somewhere in the Internet suggested it because it was "better".  Should I spend the time to figure out why "cedar" is better than "bamboo"?  Nah.  I think I'll just go with it.  (A little overwhelmed with all the decisions right now.) 

One final thing:  I spent hours trying to figure out how to setup the database config for the production (i.e. Heroku) site.  Then I found the link describing how to get this.  But there's not need to post it here, because then I found out that Heroku re-writes your production database config on upload (i.e. git push heroku).  So, there's no need to worry about this after all.  [...sigh...]