Ruby Ecosystem (rake, capistrano, mongrel, etc.?) basics - ruby-on-rails

So I am diving into Ruby (and Rails) and back-end web development in general, and it seems to me there is a huge ecosystem of Ruby projects that seem to be totally essential.
I am thinking of projects like Rake, Rack, Mongrel, Gems, Capistrano specifically.
Besides these apps' own documentation on their respective project websites, can you recommend a good place to start diving into more information about creating a good Ruby environment?
I have tons of questions about running Mongrel, deploying with capistrano, and rather than list each individual question that pops into my head, is there a good repository of information that addresses the "Ruby world"?

The Pragmatic Programmers have a Deploying Rails book that covers some of this. One tool I would add to your list is Phusion Passenger (aka mod_rails).
Also, see my answer to Ethan's question for Rails resources.

I just posted a similar question, but it was specifically about Rails learning resources, not Ruby.
If you're just diving in I recommend putting Rails to the side for the moment and focusing on Ruby exclusively. Get comfortable with Ruby before you start trying to learn Rails.
An awesome Ruby book is David Black's Ruby for Rails. But note that the Rails chapters in that book are outdated. It's worth owning just for the Ruby chapters though.
If you don't want to buy a book, try _why's poignant guide to Ruby.

I've just used the Howtos on the wiki. Most of these pieces you don't need to learn too much about at first. You'll just naturally use them if you follow the install instructions and basic tutorials.
Capistrano is an example of one you really do have to dig into a bit more - I read this article when I set it up the first time just recently and it helped me a lot; it was really pretty easy.

A new series of Rails Guides have just been launched.
Provides a very in-depth look at the fundamentals.
I would suggest concentrating on Rake and Capistrano. There is not much to say about Gems really, at it's most basic it is just a way of managing code packages for Ruby and can be approached as a black box as you get started.

You probably want to learn simple Ruby basics that can help you understand rails better such as gems, databases, or third-party resources. I know TeamTreehouse is really good at teaching around the Ruby ecosystem and HackCasts is very similar for a cheaper cost. TeamTreehouse can teach you everything from Rails API's to simple SQL to MongoDB databases. Hackcasts can teach you how to use those skills to create robust web applications. It really depends on your need. Thanks, hope this helped!

Related

Ruby on Rails commands and conventions - what are they?

I have been making websites in PHP and MySQL for almost ten years now but I have never used a framework. This means I have hand coded everything and I know how the code all works and interacts with itself.
Wanting to expand my horizons I have picked up Ruby on Rails to learn another web language, framework, DB etc. I have been following the Ruby on Rails tutorial and it is going smoothly so far but what bugs me how much of a black box it feels. there's too much magic, and stuff happens just because it does. Example of this "magic" include, if I add to the routes file "resources :users" all of a sudden I have near infinite possible links like /new /user/1 /user/1/edit etc. Or if I want to add a column to my db table I have to do something like this in the console "rails integrate _to_table value:type" and then I have to "rake" the db.
I have been able to make stuff following the tutorial but I don't understand what I am doing. I know part of it will come through experience but I want to know how and why Rails is doing what it does.
What are some good resources, online and books, where I can learn how RoR works?
Yes, it takes a while to know what all the magic is, but you'll get there eventually if you stick with it.
The 'bible' for ruby on rails development is http://pragprog.com/book/rails4/agile-web-development-with-rails
The 'bible' for the ruby language itself is the 'pickaxe' book, with contributions from the ruby language author himself. http://www.amazon.com/Ruby-Programming-Language-David-Flanagan/dp/0596516177
Ryan Bates has done HUNDREDS of free sceencasts and he is famous for having a really great approach, using the framework effectively. Every good rubiest rate these highly. http://railscasts.com/
Many folks find the "zombies" courses really good. http://railsforzombies.org/
Finally I'll offer my own bookmarks site with over 50 sites for rails:
http://www.rormd.com/linker/groups/1
and 20+ sites for ruby at
http://www.rormd.com/linker/groups/4
While you are learning a good IDE can help a lot. I used eclipse, then netbeans then rubyMine (from our friend at IntelliJ, well known for their java editor. rubyMine has the most features. It is not free but for the price (somewhere in the $24-$75 range, depending on special offers) it's well worth the cost.
This is for newcomers if they wants to learn ruby on rails, even don't know Ruby. I can say try this first and jump on others book.
Just hit on below link and see there are two tutorials available for Ruby on Rails 3.0 and 3.2
Ruby on Rails Tutorials link for Rails 3.0 and 3.2
for those tutorials you do not required Ruby backgrounds
even I like Head First Rails, this book is also good for understand - just rails (no TDB), so initial you can set in rails environment and after that jump on above tutorial link
You can see the entire code on Github http://github.com/rails/rails.
The Jose Valim Book Crafting rails application help to understand a lot of internal in rails too
I would say that using the terms "black-box" and "magic" is a quite inadequate and maybe even a bit depreciative. I believe that the difference you are feeling comes from the fact that Ruby is a very different language than PHP, and that it is easier to code high-level abstractions and conventions in Ruby that in PHP. Rails is full of these abstractions and conventions, and these may be quite confusing, specially if you have no ideia of how they internaly work.
Maybe it's not about Rails that you should be reading. I'd say that you should try to understand Ruby in the first place. A good understanding of its blocks, its object model, and its mixins is mandatory in order make that "black-box" feeling go away.
Programming in a modern programming language ain't black magic. Debugging Fortran code by printing the code and using crystals over the papersheets to find the bugs was.

Beginning rails

I have been doing desktop applications since I have started programming, and I have not really looked at the web side of things. Seeing how fast this market is growing, I convinced myself that I should learn a web framework. I learned some PHP, and I found it to be quick, but, after projects get beyond small, it becomes a hassle.
So, looking at recommendations online, I took up Ruby on Rails. Now, when I go through the ruby on rails guide, I don't really feel like I'm understanding anything, or really writing any code. I just feel like I'm editing configuration files. Is this normal? Should I just keep going through the guide, and it will all come to me later?
FYI, I'm using this as a tutorial.
When I coded in PHP, I immediately understood what the code was doing, but, with Rails, I really don't understand how all of it comes together.
EDIT: I am good at Python and C, and not bad at Java, if that changes your answer.
Before you start on Rails, I would start with the pick axe book (Programming Ruby
by Dave Thomas http://www.pragprog.com/titles/ruby3/programming-ruby-1-9) since you have previous programming exprience and make sure you have a solid grounding in Ruby.
Then I would go through the Ruby Koans and do some of the ruby quiz's. Both are fun and great practice.
Then I would start with either Michael Hartl's http://ruby.railstutorial.org/ruby-on-rails-tutorial-book or Agile Web Development with Rails (http://pragprog.com/titles/rails4/agile-web-development-with-rails) make sure you are getting the latest edition.
I would suggest Michael Hartl's tutorial first. Don't worry if you feel led by the nose a bit. I found Agile Web Development with Rails, as with a lot of the PragProg books, to expect me to go out and do a lot of research on my own along the way, like in the guides, because the topic is so big.
Then, if you don't know Javascript, you are going to want get a solid grounding in that as well. The Crockford book is highly recommended, but i found that I had to go through something basic first before I could understand a lot of the points that Crockford was making.
Just remember, despite the fact that everybody talks about how powerful/beautiful Ruby is (it is!) and how wonderful rails is (it is!), normal developers aren't going to tell you that it is easy to learn, at least, not the ones that understand the complexity and depth of both. With both you have to work pretty hard to understand them. With Rails, it takes a while to remember all the conventions.
Maybe you should try other tutorial, for example this one http://ruby.railstutorial.org/ruby-on-rails-tutorial-book
In this tutorial, author shows how to build a real app, IMO this is the best way to learn a new technology, by practice.
It's not normal - it's nice!
With Ruby on Rails we stick to a convention over configuration principle.
You should understand rails conventions. With that principle you can get a working site in 15 minutes without any configuration or coding based on best practices.
If you need something special you can code it by your own.
Small advice: buy a book. It is worth it.
I would strongly recommend this online tutorial - "Rails for zombies" -> http://railsforzombies.org/
I have walked through this tutorial and I know two other friends that have started with Ruby on Rails using this site. It is really fun and easy to begin coding.

Ruby On Rails Web Application Development From Scratch?

Background
I am interested in getting to grips with some Ruby On Rails. I've got 4 years experience programming in C#, ASP.Net, ASP.Net MVC, SQL Server and more recently Silverlight etc. Obviously I've got a pretty good understanding about the various implementation routes that you can go down when writing web applications using C#, the issue is that I have literally no clue about Ruby On Rails, other than that Ruby is an awesome pure object oriented language and that Rails is a very quick way in which to build web applications using Ruby.
What I'm After
So essentially I'm after a session that fills in the blanks, and helps me to understand the various ways of building web applications using ROR. On top of this, i've found a few tutorials but they seem to be quite vague, so any documentation/samples would be very handy to help get me started.
More Detail
Popular IDE'S to use for development (I've heard RubyMine is good from JetBrains).
Possible database implementations to use (I know MySQL is an option but which version?)
Is HTML/CSS used to style the web apps?!
Interface plugins if used?
General route to producing a highly Web 2.0 site that encompasses a fantastic user experience and a beautiful interactive interface.
...You get the idea, I just need a bit of guidance getting clued up.
Help greatly appreciated :-D
I'd highly recommend starting by reading:
Programming Ruby (also available online)
Agile Web Development with Rails
You should start with the first one, but don't read it all the way through. Once you get the basics of Ruby down, you can switch to the Rails book, but feel free to switch back and forth as you get more familiar with both Ruby and Rails.
The books are both very well written, and they're actually fun to read as far as technical books go. They do a great job of explaining the basics to a total newbie and also really digging in deep. You'll have all of your initial questions answered within a few hours.
When I tried to get into Rails, I bought this Rails for .NET Developers. It was quite useful to get going. After that, the most value I found was watching railscast videos.
For an IDE, I use Netbeans.
Different people learn different ways, but one thing I find to be very helpful for getting a real "feel" for Ruby on Rails is screencasts. The Rails site has a whole section devoted to screencasts. For example, with the 15-minute-blog video, you can actually watch someone work on the blog app and see all the steps along the way. It's not necessarily more informative than, say, a book, but it can be easier to grasp when you're actually seeing it.
The official Rails Guides are kept well up to date -- begin with the Getting Started guide, Railscasts provide quick how-tos on lots of common tasks, and the Agile Web Development with Rails (3rd Edition) book is excellent if you want to sit down and read how it all works.
There's also tons of sample code on GitHub, where you'll find just about all the plugins available as well as lots of well-designed Rails apps that will show you all the best practices.
Regarding specifics you asked about:
Many Rails developers don't bother with an IDE (they just use text editors such as TextMate on the Mac). MySQL is popular for production but for local development, Rails is set up to use SQLite, which is quick and easy. Many developers are moving to a NoSQL datastore such as MongoDb because development is quicker without schemas and migrations. You'll use HTML and CSS but you may use Haml to abstract your HTML templating. For an interactive "Web 2.0" site (as you ask) you'll want to be become familiar with jQuery and CoffeeScript.
You asked the question back in October 2009 but I'm sure other people will continue to want suggestions for the best way to get started with Rails. I hope you've already become a Rails ninja!
i started ruby on rails a few days ago using http://ruby.railstutorial.org/ruby-on-rails-tutorial-book by Michael Hartl. so far so good.
This is my experience, I'm at the stage where I can build simple apps. I am comfortable with code, at least to go to the right sources.
Hartl Tutorial ... go through this at a steady pace, just to understand the overall basics. No way you can absorb everything there.
Why's poignant guide is great to understand how to read code through a story, making things enjoyable and memorable.
Agile guide to rails. This put eveything together, I went through the exercises but stopped near the end. I read what I thought I needed to know how to build something my work would use.
Using railscasts to supplement my app building.
I would recommend as resouces to use apis, irc #rubyonrails, and stack overflow. You would be surprised how people contribute and help you through problems you encounter.
Re: IDE
Most Rails developers use VIM. Or at least the better ones use VIM.
It's more powerful than an IDE. I know and use at least 5 languages and VIM works well for all. I use YADR. If you were with a team, sometimes using VIM or Emacs or Geanie are your best options.
Re: Books
You should read a Ruby book before anything. And by read, I mean, try the examples.
The best book I've read on Ruby on Rails is probably Ryan Biggs' book.
Engineering Long-lasting software would be a good book focused on teaching you some Ruby fundamentals for practical reasons.

Gettings started with Ruby on Rails 2.0 for Windows

So like many people, I'm excited about Ruby on Rails. Being a Windows user, I downloaded InstantRails, got it going, and followed along with the screencast on how to make a blog with RoR 2.0 in fifteen minutes. I used Notepad++ as my text editor, because that's what I've traditionally used for writing the PHP-based websites I've done in the past. I was a little envious of Mac users and how they get the really attractive-looking TextMate, but I managed to follow through the entire screencast and get everything working smoothly.
However, I was lost most of the time.
I know plenty of programming and scripting languages over the years - C++, JavaScript, PHP, HTML, and Lua just to name a few. I don't know Ruby, but I understand a lot of how it works, as far as the syntax is concerned, but I don't understand a lot of the logic behind why certain files do certain things, and that sort of thing.
Also, I tried Aptana with RadRails, but found it difficult to set up. Is there any concrete tutorial for getting it set up and working fully with Ruby on Rails 2.0?
Should I maybe just wait for more RoR 2.0 tutorials to come out before attempting to learn RoR? Or should I just plow on through and experiment until I figure it out?
Also you may want to look into NetBeans, it has great support for ruby and rails. They also provide several focused tutorials and even viedos.
http://www.netbeans.org/kb/trails/ruby.html
Another excelent source of focused tutorials is http://railscasts.com/ by Ryan Bates.
On the ruby side, I strongly recommend The Ruby Way, and if you are into screencasts, the Pragmatic Programmers have some cheap and excelent ones on ruby object model and metaprogramming by Dave Thomas.
Pragmatic Programmer's Agile Web Development with Rails is an excellent book to get started with.
There is a RoR 2.0 BETA book available as well.
If you are really serious about learning Rails, my advice is to get a good book and read it (I know.. programmers don't read books, but you should!). A "good book on Rails" usually contain a chapter on Ruby, but there are plenty of resources on the web to get you going.
According to Ruby on Rails guides:
It is highly recommended that you
familiarize yourself with Ruby before diving into Rails. You will
find it much easier to follow what's
going on with a Rails application if
you understand basic Ruby syntax.
Rails isn't going to magically
revolutionize the way you write web
applications if you have no experience
with the language it uses.
I'm personally using Simply Rails 2, which uses (surprise, surprise) Rails 2. It walks you through the development of a Digg clone.
If you still don't wanna use a book, you should check out Ruby on Rails guides and the Ruby on Rails Wiki. AFAIK, They are being regularly updated to keep up with new releases of Rails.
The Rails Way is also a good book. I use it everyday as a reference book.
You could always check out the awesome Peepcode screencast series:
Rails 2 from scratch part I
Rails 2 from scratch part II
You'll be off and running in no time after watching those. I would also recommend Railscasts, a (free) weekly screencast on Rails, usually focusing on a single feature or implementing a concept in a wonderfully produced manner.
From what I've read, though, it looks like many of these books and such are now at least partially outdated with the advent of Rails 2.0. Is this true?
InstantRails has not been updated for a while, check out Rubystack, which is a similar project but we also include a bunch of other tools: Apache, MySQL,Imagemagick, etc.

Learning Ruby on Rails

Locked. This question and its answers are locked because the question is off-topic but has historical significance. It is not currently accepting new answers or interactions.
As it stands now, I'm a Java and C# developer. The more and more I look at Ruby on Rails, the more I really want to learn it.
What have you found to be the best route to learn RoR? Would it be easier to develop on Windows, or should I just run a virtual machine with Linux?
Is there an IDE that can match the robustness of Visual Studio? Any programs to develop that give a good overhead of what to do? Any good books?
Seriously, any tips/tricks/rants would be awesome.
I've been moving from C# in my professional career to looking at Ruby and RoR in my personal life, and I've found linux to be slightly more appealing personally for development. Particularly now that I've started using git, the implementation is cleaner on linux.
Currently I'm dual booting and getting closer to running Ubuntu full time. I'm using gedit with various plugins for the development environment. And as of late 2010, I'm making the push to use Vim for development, even over Textmate on OS X.
A large amount of the Rails developers are using (gasp) Macs, which has actually got me thinking in that direction.
Although I haven't tried it, Ruby in Steel gives you a Ruby IDE inside the Visual Studio world, and IronRuby is the .NET flavor of Ruby, if you're interested.
As far as books are concerned, the Programming Ruby (also known as the Pickaxe) book from the Pragmatic Programmers is the de-facto for learning Ruby. I bit the bullet and purchased that book and Agile Web Development with Rails; both books have been excellent.
Peepcode screencasts and PDF books have also been great for getting started; at $9 per screencast it's hard to go wrong. I actually bought a 5-pack.
Also check out the following:
Official Rails Guides
Railscasts
railsapi.com or Ruby on Rails - APIdock
The Ruby Show
Rails for Zombies
Softies on Rails - Ruby on Rails for .NET Developers
Rails Podcast
Rails Best Practices
I've burned through the backlog of Rails and Rails Envy podcasts in the past month and they have provided wonderful insight into lots of topics, even regarding software development in general.
Beware, the rails world is a massively frustrating mess of outdated and inconsistent documentation and examples. It is maybe one of the fastest moving and most faddish development communities there is. By the time you learn something it will already have changed. Even the books are not consistent in which version of rails they are talking about. Documentation by blogging! enough said.
I currently do RoR on windows. My advice is to avoid windows if you can. Lots of things don't work and the rails community really really doesn't care about you. The move to Git has really messed me up since it doesn't work very well on windows. A lot of gems will fail because of this (Heroku looks like a cool tool - too bad for me it can't handle window's Git setup). Capistrano is out. It goes on and annoyingly on.
Plus, in the back of your mind, you always wonder when something doesn't work "Is it a rails/windows problem?" I am not sure this is solved by using linux because linux brings its own hassles like constantly having to upgrade all those different dependencies, etc...If that's the kind of thing you enjoy it might be an okay choice for you. Those days of enjoying system fiddling are behind me and I just want to get on with doing my work. I am planning on installing ubuntu on a home machine just so i can get familiar with things like capistrano so maybe my opinion will change.
I'd highly suggest if you are going to do rails dev for any amount of time you seriously consider getting a Mac. If you value your time and sanity it will pay for itself almost instantly. Depending on how you value your time 10 hours of debugging windows/linux setup problems and you have spend as much as a Mac costs anyway.
Rails is a joy compared to what it replaces but it is a bit of a pain in that its proponents skip right past a lot of the boring but important stuff like documentation, compatibility issues and community building. It is way more powerful than other frameworks like Django but I sometimes look over at the Django documentation and community and sigh like a guy with a wild sexy girlfriend looking at his friend's plain but sane and stable wife. But then rails adds a feature and I go "Ohhh shiny!"
IMO the Rails Screencasts are better than the Peepcode screencasts. RubyPlus also has screencasts, mind you, they are bit rough around the edges. BuildingWebApps has a free online course that starts doing screencasts halfway through.
Path of least resistance:
Have a simple web project in mind.
Go to rubyonrails.org and look at their "Blog in 15 minutes" screencast to get excited.
Get a copy of O'Reilly Media's Learning Ruby
Get a Mac or Linux box.
(Fewer early Rails frustrations due to the fact that Rails is generally developed on these.)
Get a copy of Agile Web Development with Rails.
Get the version of Ruby and Rails described in that book.
Run through that book's first section to get a feel for what it's like.
Go to railscasts.com and view at the earliest videos for a closer look.
Buy The Rails Way by Obie Fernandez to get a deeper understanding of Rails and what it's doing.
Then upgrade to the newest production version of Rails, and view the latest railscasts.com videos.
I wrote a post called "Getting Started With Rails -- What I wish I knew" that many people found helpful.
The basics:
Agile development with Rails (book)
InstantRails for quick ruby/rails environment on Windows
Aptana as the IDE
Subversion for version control
The online tutorials are decent but scattered. Invest $30 in a book for a more comprehensive understanding.
I've found http://railstutorial.org/book to be a great resource for learning Rails
I really enjoy RubyMine from Jetbrains. It seems like a very full featured IDE something I miss from many of the other alternatives out there. Also for a simple env I enjoy e the text editor. Plain and simple.
IDE: NetBeans
Book: Agile Web Development With Rails
Installation: Instant Rails
Data Structures and Algorithms with Object-Oriented Design Patterns in Ruby
Bruno R. Preiss |
Published in 2004
Learn to Program
Chris Pine | Pragmatic Bookshelf
Published in 2006, 176 pages
Mr. Neighborly's Humble Little Ruby Book
Jeremy McAnally |
Published in 2006, 147 pages
Programming Ruby: A Pragmatic Programmer's Guide
David Thomas, Andrew Hunt | Addison-Wesley
Published in 2000, 608 pages
Rails in a Nutshell
C. Fauser, J. MacAulay, E. Ocampo-Gooding, J. Guenin | O'Reilly Media
Published in 2009, 352 pages
Ruby Best Practices
Gregory T. Brown | O'Reilly Media
Published in 2009, 328 pages
Ruby Essentials
| Techotopia
Published in 2007
Ruby on Rails Security
Heiko Webers | OWASP
Published in 2009, 48 pages
Ruby User's Guide
Mark Slagell |
Published in 2005
The Book Of Ruby
Huw Collingbourne |
Published in 2009, 425 pages
The Little Book of Ruby
Huw Collingbourne | Dark Neon Ltd.
Published in 2008, 87 pages
why's (poignant) guide to Ruby
why the lucky stiff |
Published in 2008
There's a very solid ongoing series on NETTUTS right now that you may be interested in.
http://railsforzombies.org/ is a nice one. Introducing an all new way to learn Ruby on Rails in the browser with no additional configuration needed.
As you, I'm a java/C# developer trying to learn more Ruby On Rails.
I'm taking the free online course Ruby on Rails Programming with Passion, is a good introductory course, check it out.
We are using NetBeans as IDE (win/mac/linux/solaris), if you are used to Eclipse or Visual Studio, there is a good chance you will like it.
Fantastic decision! It is extremely useful to get a grounding in Ruby before going to Rails so here is my take on the best path to Rails:
Learn to Program by Chris Pine - You can read this in an afternoon to get a feel for the Ruby language.
The Well Grounded Rubyist by David Black - Like the title says it will give you an excellent grounding in the language.
Eloquent Ruby by Russ Olsen - This book is sublime, it reads like a novel.
Ruby Best Practices by Gregory Brown - By this point you should be ready for the advanced level of this book.
Rails for Zombies - Fun tutorial you can complete in an afternoon.
Rails Tutorial by Michael Hartl - Fantastic (and free) tutorial and I have heard his accompanying screencasts are amazing.
Agile Web Development with Rails by Sam Ruby - By the time you are finished this you are now a completely capable Rails person!
Aside from books the most important thing is to get feedback on what you are doing. To do this I recommend spending time in irc.freenode.net #ruby and #rubyonrails. It is also extremely helpful to post things you are working on or having trouble with here on stackoverflow as the comments, explanations and different way of thinking about things that people provide are invaluable.
You should also definitely check out the Ruby Rogues podcast, they provide invaluable information and the commentators are all extremely respected people in the Ruby community. And for your viewing and reading pleasure (in that order,) head over to Ryan Bates's Railscasts and then Eifion Bedford's Asciicasts.
Finally, I recommend looking into different gems on github, reading the code and then contributing to them. You don't have to get overly ambitious and do massive recodes, especially at first. Just start with small things like editing and making the README files a little easier to read.
I don't use an IDE but at Railsconf I saw a demo of Rubymine from Jetbrains and it seemed pretty amazing.
0) LEARN RUBY FIRST. This is very important. One huge advantage of Rails is Ruby: a great language that is very powerful but also marvelously easy to misunderstand. Run through a few Ruby tutorials online. When coding challenges come up on Daily WTF, write them in Ruby. You'll pick it up fast.
1) Go buy the book "Ruby for Rails"
2) Check out a Rails tutorial and subscribe to the Riding Rails blog.
3) Standup an app locally. Don't use scaffolding.
4) When you install plugins into your app, go look at the code in that plugin (in your vendor directory) and learn it. It is one of the best ways to learn Ruby and Rails internals. When you don't understand how something works, post it here and 1,000 people will help you.
As for your other questions:
Yes, you will need a Linux environment to develop in. You can develop Rails on Windows, but that doesn't mean it should be done. Lots of gems aren't up to speed on Windows.
NetBeans works well as an IDE. If you're on a Mac, you'll get street cred for using Textmate.
Find a nearby Ruby users group and start attending that. I've found that is a great way to meet a lot of people who are passionate about development and willing to teach.
I'm surprised there has been so little mention of Why's (Poignant) Guide to Ruby. Why may not be around anymore but the guide is easy to find on the net (Google points here first) it's a very easy read and provided my introduction to Ruby.
After the guide, I'd recommend either one of the books the others have suggested, or following the series of screencasts at Learning Rails which is how I picked up enough Ruby on Rails to be dangerous. Once you've completed the Learning Rails series. what you want to do with Rails will start to diverge from the general tutorials and that's where Railscasts becomes a wonderful tool. There's not much can be done with Rails that Railscasts hasn't touched on at some point.
My first suggestion would be to learn a little about symbols first. Rails isn't the smallest framework ever, and while there's definitely lots to learn, most of it will start to make sense if you have at least a little bit of understanding what makes it different ("special") from other languages. As pointed out, there's no exact analog in any of the major languages, but they're heavily used by Rails, in order to make things read straightforwardly and perform well, which is the reason I brought it up. My very first exposure to Rails was also my first time looking at Ruby (well before 2.0), and the first thing that caught my eye was the goofy :things they were passing around, and I asked, "WTF is that?"
Also, check out RubyQuiz, and read other peoples' answers on that site.
I came from a Java background to Ruby to. I found this tutorial helpful http://www.ruby-lang.org/en/documentation/ruby-from-other-languages/to-ruby-from-java/. When it comes to learning rails I cannot say how much I use script\console. It allows you to play with the code and learn how to do things that you are not sure about.
The only book I ever bought was Agile Web Development with Rails, Third Edition http://www.pragprog.com/titles/rails3/agile-web-development-with-rails-third-edition. It was quite useful and provided a good overview of the Rails framework. In addition to that I regular watch Railscasts(http://railscasts.com), which is a great screen casting blog that covers all kinds of Rails topics.
I personally prefer using Linux (because git works better). But, I have also used windows and besides git I do not think the OS choice will impact your programming.
I use netbeans for my IDE and occasionally vim (with the rails plugin). I like netbeans but, I find that it can still be a little flaky when it comes to the Rails support (not all the features work all the time).
This looks like a great resource for people like me who are coming from PHP to RoR
http://railsforphp.com/ There's also a book Rails for PHP Developers
I used to do Java and C# on Windoze.
I'd second these sources:
IDE: Try Apatana RadRails 3 Sneak Peek: http://www.radrails.org/3. Its the closest thing you'll get to Visual Studio. I play with it here and there but still love the lightness of Textmate.
OS: Mac OS gets the most if not all love from Ruby community. Anything else is treated like a bastard child.
Books:
The Pragmatic Programmers' Guide (the pickaxe book)
Agile Web Development with Rails
Screencasts:
Peepcode (pay) is a nice way to pick up concepts quickly
Railscasts (free) is a good weekly way to pick up new gems and concepts incrementally
Railscasts (pro) is also a good way to pick up concepts for a pretty low price.
The ubber source for anything Rails is http://www.rubyonrails.org/ if they don't have it on the site you probably don't need it.
A quick cookbook is Ruby on Rails: Up and Running you can get it from O'Rielly or search Google for a on-line version. They walk you though the conventions of Rails and use Instant Rails which is ok.
A better Rails book "Agile Web Development with Rails" This is the soups to nuts of Rails. It walks you though downloading and setting up Rails, Gems, everything.
If you want are a Java 'guy' and want a transition book O'Reilly has "Rails for Java Developers" http://oreilly.com/catalog/9780977616695/?CMP=AFC-ak_book&ATT=Rails+for+Java+Developers
Another IDE you could try is Aptana.
Oh I almost forgot. Here are a few more Ruby screencast resources:
SD Ruby - the have a bunch of videos online - I found their Rest talks SD9 and SD10 to be among the best of the intros. Other rest talks assume you know everything. These ones are very introductory and to the point.
Obie Fernandez on InfoQ - Restful Rails. I've also read his Rails Way book and found it informative but really long winded and meandering and the quality is a bit inconsistent. I learned a lot from this book but felt it was a bit punishing to have to read through the repetition and irrelevant stuff to get to the good bits.
Netbeans is a nice hand holding IDE that can teach you a lot of language tricks if you have the patience to wait for its tooltips (it is a painfully slow IDE even on a really fast machine) and you can use the IDE to graphically browse through the available generators and stuff like that. Get the latest builds and you even have Rspec test running built in.
Bort is a prebuilt base app with a lot of the standard plugins already plugged in. If you download it and play with it and figure out how it is setup you are about halfway to creating your own full featured apps.
I bought the book "Simply Rails 2" by Patrick Lenz.
This book is a great introduction to Ruby and Ruby on Rails.
As for my ruby installation and db, I used Cygwin.
It comes with PostgreSQL, ruby and svn.
I like PostgreSQL because I come from an Oracle
background so it feels more comfortable than MySQL.
The other utility I found really useful was pgAdmin
for accessing the PostgreSQL databases.
The first thing I needed to do was to get gems installed.
I got the gems tar file from rubyforge
wget "http://rubyforge.org/frs/download.php/60718/rubygems-1.3.5.tgz"
Once I had gems setup, I installed
rails
ruby-postgres
postgres
rack
I also needed an issue tracking system so I installed redmine.
wget "http://rubyforge.org/frs/download.php/60718/rubygems-1.3.5.tgz"
I found that using a UNIX-like environment (Cygwin) was
preferable in my case because many of the tutorials were
taylored for OS X or Linux.
The text editor I use is Textpad. I'm looking for an alternative.
I think that vim with the rails plugin might work nicely.
I come from a non-programming background. I have learned PHP on my own and recently joined a firm that specializes in Ruby on Rails. They have a comprehensive Rails training program, which is flexible enough to accommodate whatever changes we want to implement. Though I am not a rails pro, I would like to share my experience with rails. I hope that it helps.
Here is the path I am following [combined with tools I am using]
Start with a simple ruby guide. It will help a lot, since entire rails framework revolves around classes and objects.
Environment and OS are not important. Though I am working on a Mac, I frequently work on Linux and Windows, and I do not face any problems.
Start with a good book which explains using a demo app. [I am using Agile Web Development with Rails - By The Pragmatic Bookshelf]. There are many other good books as well.
Once you are done with the application, you will have a good idea of the framework.
Try to understand the SQL queries generated by Active Record module.
Go through the Rails Guides. You will find the framework a lot easier.
Keep practicing.
Few imp points
It takes years to learn a language completely. So be patient and do not stop learning.
Go through rails api as when required. [While developing your first app]
Google the things which you do not understand. People have written great articles on almost all topics.
Use Stackoverflow :-) [Only when you are not able to find the solution on your own.]
Load railscasts on your phone or video player. Watch 'em while travelling or in your free time. They are of few minutes each. You will learn a great deal of things and also learn the best way of doing things.
Tools
Shell [in Mac and Ubuntu]
Editor [Textmate in Mac, Gedit in Ubuntu and Notepad++ in Windows]
Firefox with Firebug installed for testing.
Finally I have one thing to say "Keep trying". All the best.
The fastest way to learn anything, Ruby on Rails included, is pair programming.
Find someone who knows Rails, pick an example app, sit down, and work through fixing bugs, adding features.
The knowledge sharing is unbelievable.
My suggestion is just to start - pick a small project that you would generally use to learn an MVC-style language (i.e. something with a database, maybe some basic workflow), and then as you need to learn a concept, use one (or both!) of
Agile Web Development with Rails
or
The Rails Way
to learn about how it works, and then try it.
The problems with Agile Web Development are that it's outdated, and that the scenario runs on too long for you really to want to build it once; The Rails Way can be hard to follow as it bounces from reference to learning, but when it's good, it's better than Agile Web Development.
But overall they're both good books, and they're both good for learning, but neither of them provide an "education" path that you'll want to follow. So I read a few chapters of the former (enough to get the basic concepts and learn how to bootstrap the first app - there are some online articles that help with this as well) and then just got started, and then every few days I read about something new or I use the books to understand something.
One more thing: both books are much more Rails books than they are Ruby books, and if you're going to write clean code, it's worth spending a day learning Ruby syntax as early as possible. Why's Guide to Ruby is a good one, there are others as well.
I think the screencasts and short books from Peepcode are really good. They have screencasts to get you started and have some as you get more advanced.
There is a site called Softies on Rails that is written by a couple of ex-.NET developers that may be of some use. They have a book called Rails for .NET Developers coming out in the next few months...
I started out on a Windows box using the RadRails plugin for Eclipse and the RubyWeaver extension for Dreamweaver (back during the 1.x days of Rails). Since then I have moved to a Mac running TextMate and haven't thought of going back.
As for books, I started with The Ruby Way and Agile Web Development with Rails. It definately helps to build a background in Ruby as you start to make your way into Rails development.
Definately watch the Railscast series by Ryan Bates.
I have found "The Rails Way" by Obie Fernandez excellent and often found myself referring to it when Agile Web Development with Rails didn't seem to go far enough. Obie Fernandez has a decent blog too.
Wait a couple of months for Learning Rails by Simon St. Laurent, Edd Dumbill to come out in November. That series of books is stupendous, and this book will cover the latest version of Rails.

Resources