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...]
 


Comments


Your comment will be posted after it is approved.


Leave a Reply