Hartl's Rails Tutorial is by far the best and most pragmatic programming tutorial I have ever read. I used it to get me started with Rails 3 (bought the hard copy) and I still consult it all the time when working in Rails. I have never felt so empowered as a programmer the first time I build that twitter clone from the tutorial. It didn't teach me anything about algorithms, databases, or any of the core things I learn in school. Instead it taught me serious practical things like deployment, rapid prototyping, version control, and so much more. Michael, if you're still reading this thread: Thank You. You made programming exciting for me.
Yes, the Rails Tutorial and RailsCasts episodes should get you up to speed and keep you up to date. IMHO, they're the best learning resources for RoR out there.
Yeah, sorry, what I meant was that I'm definitely set on doing the tutorial. I'm just not sure if I should go through the 4.0 draft or the older version that's been up there. Would it be more practical to learn on 4.0?
They're not that different, so if you're just starting out I recommend following the more stable 3.2 version. Once you've finished that, you'll be in a position to learn the Rails 4.0–specific material very quickly (especially once the supplementary screencast comes out).
The older version, 3.2, should be more stabler but it may be worth the slight risk to learn 4.0 from the start, as that will provide you with newer feature overviews of the framework. If you do have troubles with 4.0, you can ask and find answers on StackOverflow or the #rubyonrails IRC. You may also help by reporting any errors or bugs in 4.0.
I agree. Having been suddenly thrusted into the world of Ruby, Rails (and web development in general) from Java and C, Micheal's tutorial was a real life saver. I would have been lost in the crowd had it not been for this. Excellent!
Totally agree. Tried a few other things before it and so few get the balance of explaining enough 'why' to make a task not arbitrary, while also keeping you grounded in the practical stuff you actually need to know.
I hadn't don't any programming since some BASIC and Fortran during my physics degree in the mid 90s until 2010 when the loss of a technical co-founder in back to back startups made me recognize I needed to make myself my own technical cofounder - at least to get through the MVP phase. I'm writing a blog post about this at the moment including links to the key resources that helped me go from a sales, marketing, biz dev guy to competent developer able to produce my own MVPs.
Railstutorial was a key part in that, a brilliantly written resource which helps explain lots of complex concepts in simple ways. Very excited to see the new Rails 4 version come out. I cannot recommend this highly enough to people who are starting from scratch with Rails.
source 'https://rubygems.org'
ruby '2.0.0'
gem 'rails', '4.0.0.beta1'
group :development do
gem 'sqlite3', '1.3.7'
end
group :assets do
gem 'sass-rails', '4.0.0.beta1'
gem 'coffee-rails', '4.0.0.beta1'
gem 'uglifier', '1.0.3'
end
gem 'jquery-rails', '2.2.1'
gem 'turbolinks', '1.0.0'
gem 'jbuilder', '1.0.1'
group :production do
gem 'pg', '0.14.1'
end
The app is the "first_app" from the book, which is basically the result of running "rails new first_app" plus a slightly modified Gemfile. The full repo is here: https://github.com/mhartl/first_app. Any help in getting it to work on Heroku would be much appreciated.
Adding a Procfile is generally recommended (although heroku will add a default one)
web: bundle exec rails server thin -p $PORT -e $RACK_ENV
Setting your rails env is a good idea too:
heroku config:add RAILS_ENV=production
Note I didn't perform those steps to get the app running, they are just recommended.
Edit: Actually I do see this line in my heroku logs:
2013-03-21T00:50:21+00:00 heroku[web.1]: Starting process with command `bin/rails server -p 32752 -e $RAILS_ENV`
2013-03-21T00:50:22+00:00 app[web.1]: bash: bin/rails: No such file or directory
Adding a Procfile should fix that. Listing 'thin' (or another rails server, e.g. unicorn,puma) in your Gemfile is a good practice as well.
This is new behavior in Rails 4.0, which is why it threw me. The default page works on Heroku going back to Rails 2.3, but they switched things up in the latest version of Rails.
Thanks. I think I know what the problem is. Tracking it down now...
Edit: Yes, I figured it out. In Rails 4.0, the default page for a new app is no longer served as a static file from the public/ directory. Instead, something magical happens, and the magic doesn't work on Heroku. That's no worry, though, as it only means the first app doesn't work. The other apps, which set root routes, should work fine.
They don't, though. I can't get the main sample app's CSS or images to load properly. Hmm... Bleeding edge indeed.
Update: You need to edit the default production.rb file to configure Rails to serve static assets:
> Instead, something magical happens, and the magic doesn't work on Heroku.
To be clear, this is because the 'Welcome page' shows info about the server, so you NEVER want that accidentally leaked to the world at large by accident, so the route gets disabled in production mode.
You're right, of course, but it's not just that. In previous versions of Rails, the default page (a static file served out of the public/ directory) worked just fine on Heroku. It was only the magical “About your application’s environment” link that didn't work. In Rails 4.0, the static file is gone, and as far as I can tell the entire default page is magic, so on Heroku it breaks in its entirety, too.
It's not a big deal of course, as in any real app you'll quickly define a root route and be done with it. (I do consider it a feature, too, as I really like not having to remove the static file by hand.)
All right, based on everyone's feedback I was able to get things working on Heroku and have updated the news post and book accordingly. Thanks! HN rocks.
Great stuff. The Rails Tutorial was my top resource when learning Rails and I still use it as a reference (along with RailsSpace and Railscasts). I'm using Rails 4 on a few projects, so if I can lend any feedback on the future release let me know.
Please do send feedback! Any significant structural changes will have to wait until the next full edition (slated for production later this year), but bug and typo reports are hugely appreciated. I typically process such reports as an email queue, so send them to admin@railstutorial.org.
Just started learning rails last week, and I have say Michael, you have been a huge key part of that. My boss thanks you for speeding up my learning process. Your book actually just arrived today.
Anyone trying to learn RoR, use this guy's tutorial - promise you won't regret it!
I'm working through it now - have left the tutorial for a while (finished chapter 8, sign in) to do a few demo projects and make sure all the concepts are sticking.
I'm also finding that reading open source code is giving me some much needed 'real-world' exposure - currently studying Lobsters (https://github.com/jcs/lobsters)
I did the rails 3.0 version of this tutorial about 2 years ago. Highly highly recommended. It almost single-handedly got me into web development and I certainly wouldn't be where I am today without it. Many thanks mhartl.
I started learning to code last year using Hartl's Rails Tutorial. It was actually a big part of me deciding to go with Ruby and Rails over any other language and framework.
I have spoken with many dozens of other beginners at local Ruby meetups. Basically EVERYONE learning Rails and Ruby (at least in NYC) uses this thing.
It might not be a bad idea to read through the Rails Tutorial, even if you're an experienced Rails developer, just to see what the baseline is for people starting out these days.
I've done two versions of the Hartl Rails tutorials now, looks like I'll be doing a third. They really are truly excellent resources, and if anyone is considering doing an in-depth tutorial for any technology there's plenty of lessons to be had there. I recommend it constantly to people who're looking to get a start with Rails.
As I read the post (haven't dug into the v4 book itself yet), this covers only revisions, not new features (such as TurboLinks)?
As others have said, thank you so much for this resource. Everyone who can afford it who finds it useful should purchase it (I bought v3.0 on Kindle, and v3.2 in hard copy)
Completely new features like TurboLinks aren't covered yet (they will probably be in the full third edition later this year), but additions like strong parameters and the new Active Record finders are covered.
Since there are by now probably a lot of readers who go back to the book and user it as a reference, is there any chance that you include new topics / extra chapters with more advanced topics? Would be great (+ you could charge me again... ;-).
@mhartl I noticed you recently got a Chinese translation for the tut. Are there any other language translations available or in the works? (I'm looking Portuguese or even Spanish secondarily)