Hacker News new | past | comments | ask | show | jobs | submit login
The Ruby on Rails Tutorial, 2nd Edition (full draft) (railstutorial.org)
268 points by mhartl on Feb 8, 2012 | hide | past | web | favorite | 45 comments

This draft includes previously unpublished versions of Chapter 10, "User microposts", and Chapter 11, "Following users". The original announcement is here:


This is a full draft, but it's not yet complete. In particular, I'm considering replacing Blueprint CSS with Bootstrap for the final version. Please let me know what you think.

I agree with everyone else on using bootstrap. Besides becoming the norm there are a couple of steps using available gems that could make a beginner have an easier time setting it up. It could be a difference maker with someone's time.

Also, huge fan of this tutorial. It got me started with Rails a year ago. Best resource I used to learn rails.

Yes, 100% please use twitter bootstrap, it is becoming the standard for rapid app development here on HN.

Hello, I also started rails by reading your tutorial. I have a question, this post http://stackoverflow.com/a/5612941 suggests that the way to model a friendship is to duplicate rows in a transaction and it cites a book you wrote.

Is this still the way to go? I like the idea of duplicating rows because it simplifies the associations a lot, but I've been warned against it. Is that the way you would do it?


I'm about half way through the new tutorial, and I started using bootstrap already. This would be a welcome addition!

Bootstrap! Maybe the developer version.

What's the developer version? I was thinking about using the less-rails-bootstrap gem.

I can't speak for everyone, but I know quite a few who prefer the SASS port over less-bootstrap-rails (bootstrap-sass)

Completely agree, though LESS is nice, I think it would be best for people to be kept within rails "standards" (for want of a better term) which at the moment means SASS. There's also the whole "having to maintain a JS stack" that less necessitates as well, which would be better to leave well alone for beginners I think.

I went the less port because it was being upgraded quicker with the 2.0 release. I've used both and they are both great gems. Both function pretty similar so don't be afraid of the LESS version, its still supported in the assets pipeline!

bootstrap-sass most definitely. Support for Bootstrap 2.0 was included very quickly (there was a development branch even before the main release)


Thanks for the input. This is very helpful.

great work Mr.Hartl. Best RoR tutorial for Rails newbie. Any plan on tutorial of RoR in depth?

Any plan on tutorial of RoR in depth?

Well, this tutorial already weighs in at more than 500 pages. That's pretty in-depth if you ask me. :-) But producing more advanced content in the future is definitely a possibility.

I've been learning Rails from your tutorial (just finished Chapter 11), but realised a few days ago that I've been using the 3.0 version. It'd be great to see an appendix on "Transitioning to 3.2 for first edition readers" (probably like the one you've got for 3.0 -> 3.1, but I haven't got to reading that yet.)

And while I'm here, there is a bug in the 3.0 edition in section 11.3.4, listing 11.39. The link_to "delete" needs to reference 'feed_item', not 'micropost'. That took me a good half an hour to sort out - mainly because I assumed it was my fault, not yours! :-)

Thanks for all your efforts here; this is a fantastic resource.

Oops, you're right. That's actually a new bug, and has now been fixed.

As far as the transition goes, that's a great candidate for a blog post, but it's not as good a fit for a book. Plus, experience shows that starting from scratch often takes less time in the end.

Fair enough. My current plan when I've finished is to rewrite my collaborative blogging platform in Ruby (was Google App Engine + Python). It's got enough similarities to a twitter clone that I can base a lot of the infrastructure on railstutorial, but enough differences that I will definitely start from scratch rather than trying to modify the codebase. I guess I should move to rails 3.2 at the same time, and whizz through your new version in parallel.

Thanks for fixing the bug.

Not sure if you are aware of this...for the first edition of your tutorial, webrat is required for many of the tests (I tested on ubuntu/windows), but inclusion of webrat will actually break some of the new tests (like those using have_selector) in the second edition. You might want to add a warning to those who have followed the first edition and are trying to incorporate the additions in the second edition.

The 2nd edition explicitly uses Capybara instead of Webrat. As long as people pay attention to their Gemfiles, they should be fine.

It would be nice if you can discuss the differences, like how Capybara is meant for integration tests, and replacement for have_template etc. At some sections the tests are still referred to controller tests (Listing 10.46) although it looks like you intend to convert them all to integration tests.

Also, 11.37 tests do not work with valid_sign_in (using session authentication), but works with the controller.sign_in method introduced in 1e.

Is there a change log or something of the sort? I am actually half way through chapter 4 and looking back I see some differences between what I've already done and what is presented on the site, just want to make sure I'm either not missing things or what I've already written is ok to continue with.

+1 for twitter bootstrap, thanks for the excellent book.

As said.

This tutorial was my first exposure to Ruby and Rails. It is amazingly comprehensive and comprehendible for newbies. I'm so glad to see it being regularly updated.

Thanks Michael for you contribution!

Rails Tutorial was my first step in developing. It was extremely helpful and I used both the book and screen casts which helped me alot. For a complete newb it was a bit overwhelming but I was still able to follow along and eventually get the sample app live. Now I am trying to learn more pure ruby and going back through the tutorial and learning even more. Thanks again Michael this has been by far the best resource I have used so far.

So far really liking the tutorial. Just one thing, as a rails newbie, could you expand a little more on the deploying part of section 1, specifically giving an example of deploying NOT using heroku.

It's just I want to be deploying to just a generic server running rails and I want to know how the process is different. I know you have to set the ENV to production but at what stage of the process does this happen etc...

Check out the Capistrano docs at https://github.com/capistrano/capistrano/wiki which are pretty comprehensive for getting started with Rails deployment.

I second that. Capistrano does have a very comprehensive run down of how that all works but for the beginner I can see them getting lost with those. Most Rails tutorials I've seen either tell you to deploy to Heroku or if they don't they don't cover deployment to your own server so much, it usually feels like a quick skim.

this tutorial is the best tutorial I have ever read, thank you for your work. I recommended it to a lot of people.

I actually think bootstrap is a good idea but might result in a distraction since it is a big framework.

Yes it's definitely great! Was able to build my first rails-based administration crud app in two weeks, with tests, by following this book!

Bought the previous version of your book and, like several others here, just wanted to say thanks and great work!

Busy going through the older tutorial at the moment. At Chapter 5. It's awesome, thanks for the great tutorial.

As if you need more votes for "twitter bootstrap", I'd say please use twitter bootstrap!

+1 for twitter bootstap I also purchased the original book and loved it. Thanks a lot

I've been going through this tutorial. I highly recommend it. It is very well done.

Do you have an estimate as to when the print edition will be published?

Figure 3-6 months. I'm always amazed at how long it takes.

I'd definitely like to see Bootstrap in the final version.

Great job with this tutorial!

This has been a great resource in my learning of Rails. Thanks!

Awesome work, I really appreciate tutorials in this style.

Just wanted to say thanks.

thanks a lot, it's an awesome tutorial.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact