Agile Web Development with Rails 3.2 (Pragmatic Programmers)

Author: Sam Ruby, David Thomas, David Heinemeier Hansson
All Comments
TopTalkedBooks posted at August 20, 2017

I know this maybe too-late for the original question poster but might help someone else in a similar situation. Below links are for a total newbie (like me) to RubyOnRails but someone who's programmed before. You can pick and choose the relevant ones as per your skill level.

Understanding Redmine (functionality):
If you're not familiar with Redmine or administering other Issue Tracking Software Mastering Redmine book is an ok place to start. It's not very densely packed so it'll help only as a structured organization of information. If you want more dense information go through the documentation instead.

Understanding Redmine Plugins:
"Redmine Plugin Extension and Development" by Alex Bevilacqua has just been released (March 2014). It's available both in print and ebook formats from packtpub.

I'm going through the book myself as I need to customize/rewrite a plugin for Redmine. I'm new to Rails/Ruby/Redmine myself. Though I'm from Unix/C++ background still getting to know the ropes of Ruby, Rails, Redmine via following books.

Understanding Rails:
I found the book Agile Web Development with Rails to be a good enough intro to Rails for programmers from other languages.
Note: Target audience seems to be Rails developers but it should be possible to get through that learning curve by browsing github redmine plugin repositories.

Understanding Ruby:
Programming Ruby (the PickAxe Book)

Understanding Ruby Metaprogramming idioms (used in Rails):
On the surface Ruby looks like most scripting languages it is the use of MetaProgramming and Dynamic nature of Ruby Object Model that allows making complex internal gymnastics invisible to newbies.

A single line of Rails code contains enough such tricks to fill a small book.
Fortunately such a book has already been written - Ruby MetaProgramming book in Pragmatic Programmers series. It's superb to come to grips with this Mixin based Dynamic MetaProgramming. Rails and Redmine use plenty of these tricks as hooks etc to get the work done.

Excellent Video on Ruby Object Model by Dave Thomas
Video on Ruby Object Model and Meta Programming

TopTalkedBooks posted at August 20, 2017

I took up Rails with the Agile Web Development with Rails 2nd Edition. I have their latest (4th) edition and recommend it, but there are lots of other resources out there now.

One in particular that I would very much recommend is the free Ruby on Rails Tutorial by Michael Hartl. It's up to date and teaches you how to use not only Ruby and Rails, but also other modern and important tools such as RVM for Ruby/gem management, Git for version control and RSpec for testing. It encourages a great test-driven workflow, so I'd recommend it even if you're not a beginner. I actually used this tutorial a few months back to refresh my memory and get into the new Rails 3 after having been out of it for over a year.

After you're comfortable with the Rails framework, then you should learn the Ruby language it is built upon. This is the stage I am at. Some of the books I'd recommend for learning Ruby are:

  • Eloquent Ruby - teaches you the Ruby way in many chapters covering a wide spectrum of the Ruby language. Great read for polishing and enforcing your Ruby knowledge, and also great to re-read just to reinforce everything!
  • The Ruby Programming Language - co-authored by the author of Ruby himself, Yukihiro Matsumoto...need I say more? This is quite in-depth so not great for beginning to learn the language but great for helping you to master it.
  • The Well Grounded Rubyist - currently going through this book. It is well written and covers a lot of ground, good for getting the hang of Ruby, but probably assumes you're not a programming newbie.

Obviously this is based on my experience and recommendations I have received from friends and colleagues, so I'm not saying this is the path for everyone interested in Ruby/Rails, but so far it's working for me. I'll be interested in seeing what resources others recommend here.

TopTalkedBooks posted at August 20, 2017

There're some quotes from the famous book Agile Web Development with Rails, which may be helpful to understand the symbol as well :

Rails uses symbols to identify things. In particular, it uses them as keys when naming method parameters and looking things up in hashes.

redirect_to :action => "edit", :id => params[:id]

You can think of symbols as string literals that are magically made into constants. Alternatively, you can consider the colon to mean "the thing named", so :id is "the thing named id".

Top Books
We collected top books from hacker news, stack overflow, Reddit, which are recommended by amazing people.