# New to Rails? Read This

**URL:** <https://www.ruby-forum.com/t/new-to-rails-read-this/171825>\
**Category:** Rails\
**Created:** [July 9, 2009, 7:14pm UTC](https://www.ruby-forum.com/t/new-to-rails-read-this/171825 "2009-07-09T19:14:48Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![elricstorm](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/e/da6949/32.png) [@elricstorm](https://www.ruby-forum.com/u/elricstorm)\
**Post date:** [July 9, 2009, 7:14pm UTC](https://www.ruby-forum.com/t/new-to-rails-read-this/171825/1 "2009-07-09T19:14:48Z")

</div>

I’m still relatively new to rails myself but have been using it now for  
about 6 weeks. I’ve read 3 rails books, performed thousands of google  
searches, saved everything important to my current work scope, and want  
to make it easier for those that come after me.

If you are reading this then you probably already realize that it’s  
sometimes difficult to find information on certain topics. To make it  
easier to find things you need, please look below:

**========= Direct Tutorials/Walkthroughs ==========**

[http://www.buildingwebapps.com/learningrails](http://www.buildingwebapps.com/learningrails)

Summary: This is one of the best learning rails sites I’ve come across.  
Everything works with Rails 2.3.2 and both persons that teach on this  
site are very experienced with rails. I can personally attest to  
Christopher Haupt who has on numerous occassions, personally answered my  
emails to assist me with questions. The entire site is free and will  
walk you through creating a custom content management system from start  
to finish.

In addition, it goes through a lot of core foundations and these guys  
are really good at explaning things.

**========== SCREENCASTS ==========**

> **[Ruby on Rails Screencasts - RailsCasts](http://railscasts.com/?view=list)**
>
> Short Ruby on Rails screencasts containing tips, tricks and tutorials. Great for both novice and experienced web developers.

Summary: This is the home of Ryan B., a very masterful rails  
programmer that has created an extremely large archive of screencasts  
(all free) that take you through many core rails fundamentals (basic and  
advanced).

Ryan is a great all around guy and will teach you things you never  
thought possible.

**========== GUIDES ==========**

> **[Ruby on Rails Guides](https://guides.rubyonrails.org/)**
>
> Ruby on Rails Guides

Summary: The often unnoticed guides are the ones perhaps the easiest to  
find, but people tend to miss them. The guides listed at  
[rubyonrails.org](http://rubyonrails.org) are very informative and will teach you many nuances of  
rails.

[http://www.fortytwo.gr/](http://www.fortytwo.gr/)

Summary: Another really good guides site is fortytwo. They house many  
informative articles and tips for rails that will help you when you feel  
a bit lost.

**========== DATABASE ==========**

[http://databases.about.com/lr/database\_normalization/24903/1/](http://databases.about.com/lr/database_normalization/24903/1/)

Summary: Many people, including myself, forget to normalize their rails  
databases. Because rails works with a lot of associations, it is very  
important to first make sure your databases are normalized. Most people  
will agree that if you want to use relationships like HABTM, you need to  
normalize to a minimum of 3NF (3rd Normal Form).

This site will showcase exactly how to normalize your database and is  
fairly easy to follow.

**========== BOOKS ==========**

Agile Web D. with Rails 3nd Edition Beta  
Foundation Rails 2  
Enterprise Rails

Summary: A lot of books are either out of date, or no longer workable  
with Rails 2.3.2. These books still are effective learning tools.

Foundation Rails 2 teaches you things in order of importance. Agile Web  
is a very good read. Enterprise Rails is important because it gives you  
the database/model associations and how to use them effectively in your  
projects.

======================================

If anyone wants to add important links, tips, or other comments that  
might help someone new to Rails, please do so here.

Thanks.

---

<div class="post-metadata">

**Author:** ![elricstorm](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/e/da6949/32.png) [@elricstorm](https://www.ruby-forum.com/u/elricstorm)\
**Post date:** [July 9, 2009, 10:00pm UTC](https://www.ruby-forum.com/t/new-to-rails-read-this/171825/2 "2009-07-09T22:00:12Z")

</div>

Thanks for this post. I too am coming into this new (except for a  
heavy Java background) and the onyl thing I would add to your list is  
this newsgroup. My personal goal here is to keep learning, hopefully,  
be able to answer other people’s questions on this newsgroup. -Janna B.

---

<div class="post-metadata">

**Author:** ![elricstorm](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/e/da6949/32.png) [@elricstorm](https://www.ruby-forum.com/u/elricstorm)\
**Post date:** [July 10, 2009, 9:36pm UTC](https://www.ruby-forum.com/t/new-to-rails-read-this/171825/3 "2009-07-10T21:36:04Z")

</div>

Testing Rails can be cumbersome but it’s also very necessary. You can  
hand-test all your code and do the greatest job possible but in the end,  
it won’t be enough. So, you should become familiar with a few testing  
platforms you can use with rails.

By default, whenever you create anything new with rails 2.3.2, test  
files are automatically created for you. These tests, called Unit Tests  
are the very barebones basic test platform you can use with Rails.

\*\* UNIT TESTS \*\*

You can find information about Unit Tests here:

> **[Testing Rails Applications — Ruby on Rails Guides](https://guides.rubyonrails.org/testing.html)**
>
> Testing Rails ApplicationsThis guide covers built-in mechanisms in Rails for testing your application.After reading this guide, you will know: Rails testing terminology. How to write unit, functional, integration, and system tests for your...

\*\* RSPEC \*\*

But, Unit Tests may not be enough for you and you will find that there  
are some more popular methods of testing available. One of the more  
common testing platforms is called Rspec.

[http://wiki.github.com/dchelimsky/rspec](http://wiki.github.com/dchelimsky/rspec)

Screencast tutorial from Ryan

> **[\#71 Testing Controllers with RSpec - RailsCasts](http://railscasts.com/episodes/71-testing-controllers-with-rspec)**
>
> Short Ruby on Rails screencasts containing tips, tricks and tutorials. Great for both novice and experienced web developers.

The tutorial screencast is a little old but it gives you an idea of how  
to test with rspec…

\*\* AUTOSPEC \*\*

A lot of people refer to autotest and autotest became Autospec.  
Autospec is very simple to use (it’s also referred to as ZenTest,  
because of the gem name). You can also use Autospec with Rspec to add a  
more complete testing platform for rails:

[http://ph7spot.com/articles/getting\_started\_with\_autotest](http://ph7spot.com/articles/getting_started_with_autotest)

[http://www.nateclark.com/articles/2008/09/17/\_autotest\_-is-now-\_autospec\_-how-to-set-up-autospec-for-rspec-and-rails-with-zentest](http://www.nateclark.com/articles/2008/09/17/_autotest_-is-now-_autospec_-how-to-set-up-autospec-for-rspec-and-rails-with-zentest)

\*\* SHOULDA \*\*

Another new kid on the block is Shoulda. It is actually a very  
interesting testing platform and it might not be as famous as RSpec but  
it’s really easy to use and I’m starting to lean towards using shoulda  
over rspec, personally. However, go with what platform you feel is best  
for “YOU”…

[http://wiki.github.com/thoughtbot/shoulda/rails](http://wiki.github.com/thoughtbot/shoulda/rails)  
[http://wiki.rubyonrails.org/testing/shoulda](http://wiki.rubyonrails.org/testing/shoulda)  
[thoughtbot case studies featuring design and development projects for websites, mobile and web applications.](http://thoughtbot.com/projects/shoulda/tutorial)?

Enjoy!

---

<div class="post-metadata">

**Author:** ![elricstorm](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/e/da6949/32.png) [@elricstorm](https://www.ruby-forum.com/u/elricstorm)\
**Post date:** [July 11, 2009, 6:52pm UTC](https://www.ruby-forum.com/t/new-to-rails-read-this/171825/4 "2009-07-11T18:52:38Z")

</div>

Ã„lphÃ¤ BlÃ¼Ã« wrote:  
[…]

> \*\* AUTOSPEC \*\*
> 
> A lot of people refer to autotest and autotest became Autospec.  
> Autospec is very simple to use (it’s also referred to as ZenTest,  
> because of the gem name).

Almost. AFAIK, autotest used to work with both Rails’ built-in tests  
and RSpec, but at some point the script was split. So now you use  
autospec for RSpec and autotest otherwise.

Autospec and autotest are part of the ZenTest package, but ZenTest is  
more than just those scripts: it contains the logic necessary for  
autotest to do incremental testing. So it’s a bit of an  
oversimplification to say that autospec is referred to as ZenTest.

[…]

> \*\* SHOULDA \*\*
> 
> Another new kid on the block is Shoulda. It is actually a very  
> interesting testing platform and it might not be as famous as RSpec but  
> it’s really easy to use and I’m starting to lean towards using shoulda  
> over rspec, personally.

I’ve noticed a lot of people going this way. Why? What are Shoulda’s  
advantages over RSpec?

I like what you’re doing with this thread, BTW!

## Best,

Marnen Laibow-Koser  
[http://www.marnen.org](http://www.marnen.org)  
removed\_email\_address@domain.invalid

---

<div class="post-metadata">

**Author:** ![elricstorm](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/e/da6949/32.png) [@elricstorm](https://www.ruby-forum.com/u/elricstorm)\
**Post date:** [July 13, 2009, 3:56pm UTC](https://www.ruby-forum.com/t/new-to-rails-read-this/171825/5 "2009-07-13T15:56:57Z")

</div>

> Almost. AFAIK, autotest used to work with both Rails’ built-in tests  
> and RSpec, but at some point the script was split. So now you use  
> autospec for RSpec and autotest otherwise.
> 
> Autospec and autotest are part of the ZenTest package, but ZenTest is  
> more than just those scripts: it contains the logic necessary for  
> autotest to do incremental testing. So it’s a bit of an  
> oversimplification to say that autospec is referred to as ZenTest.

Thanks for the reply Marnen - great to see the differences between those  
two. I personally did not realize this.

> > \*\* SHOULDA \*\*
> > 
> > Another new kid on the block is Shoulda. It is actually a very  
> > interesting testing platform and it might not be as famous as RSpec but  
> > it’s really easy to use and I’m starting to lean towards using shoulda  
> > over rspec, personally.
> 
> I’ve noticed a lot of people going this way. Why? What are Shoulda’s  
> advantages over RSpec?

I’ll set aside some links that would do a better job at explaning the  
pros/cons or the opinionated versus arguments between the two. Please  
note that I like Rspec and I also like Shoulda. I haven’t gained enough  
knowledge of both to reply with my own opinions unfortunately. My  
attempt was to bring more of an awareness to the different testing  
platforms out there and allow others to make their own educated guess as  
to which one works well for them.

Rspec vs. Shoulda

[http://kylebanker.com/blog/2008/08/from-rspec-to-shoulda/](http://kylebanker.com/blog/2008/08/from-rspec-to-shoulda/)  
[http://www.vimeo.com/3296561](http://www.vimeo.com/3296561)

---

<div class="post-metadata">

**Author:** ![elricstorm](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/e/da6949/32.png) [@elricstorm](https://www.ruby-forum.com/u/elricstorm)\
**Post date:** [July 13, 2009, 4:17pm UTC](https://www.ruby-forum.com/t/new-to-rails-read-this/171825/6 "2009-07-13T16:17:35Z")

</div>

Today’s post revolves around communication and SME appreciation. SME’s  
are Subject Matter Experts and every language or platform discussion  
groups have them. These are generally people that have a great deal of  
experience and house a wealth of knowledge that they share with others  
in the community.

There are numerous SMEs that assist with answering questions by the  
minute and it would do well to thank them and be appreciative of their  
help.

However, how do you communicate your topic and readily obtain answers  
from different SMEs?

# ====================== **-------** : Rule One:

Make certain that your topic is descriptive enough to highlight your  
issue. Having trouble with queries or models - simply say so.

Example of a bad topic thread:

“I’m having trouble, please help”

– this doesn’t describe anything and your topic might be avoided.

Example of a good topic thread:

“Need assistance with model/query issue”

– this describes the problem as being related to models/queries.

# ====================== **-------** : Rule Two:

Make certain that your topic contains all of the pertinent information  
surrounding your issue. More information is always better than less  
information.

If you were having a model/query issue you would want to post a general  
idea of what both your controller method initiating the query looks  
like, and the model method being called looks like. You would also want  
to make sure you tested that query in a console so you could see what  
the output is. Supplying these three things would make it much easier  
for someone to assist with a model/query issue for instance.

# ======================== **-------** : Rule Three:

Always make sure you try the simple things first before posting on an  
issue. A lot of issues stem from a simple restart of a server because  
some changes never took effect.

Make sure your syntax looks appropriate in the editor you are using.  
Make sure you at the very minimum try to test or debug the code in the  
console. Doing this will make it easier when adding information to your  
topic.

=========================  
Lastly,

Thank the people that helped you resolve your issue. Patience,  
understanding, reflection on the way a person helps you and your end  
response goes a long way. These SMEs are giving their own volunteer  
time and knowledge to help you. Make sure you show them the respect  
they deserve.

# ================================================== Channels and Communication Forums / MIRC:

[http://www.ruby-forum.com](http://www.ruby-forum.com)  
[http://railsforum.com](http://railsforum.com)

Start here to choose the forum that best describes your needs. Ruby on  
Rails is my choice each and every day.

Mirc Channels:

Ruby Language: #ruby-lang on the [irc.freenode.net](http://irc.freenode.net) server  
Ruby on Rails: #rubyonrails on the [irc.freenode.net](http://irc.freenode.net) server

There are a lot of people on the ruby on rails channel. There are a  
great many SMEs there that assist by the second. Please be patient when  
asking for help on IRC.

If you need help with IRC chat and you need some code looked at, make  
sure you go to [Pastie.org](http://Pastie.org) before asking for help:

[http://pastie.org/](http://pastie.org/)

You can put all of your code that needs help with on here and it will  
give you a nice neat link. You can link that into IRC chat and anyone  
can see the code and assist you. It’s also properly formatted  
automatically for you!

---

<div class="post-metadata">

**Author:** ![elricstorm](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/e/da6949/32.png) [@elricstorm](https://www.ruby-forum.com/u/elricstorm)\
**Post date:** [July 13, 2009, 5:31pm UTC](https://www.ruby-forum.com/t/new-to-rails-read-this/171825/7 "2009-07-13T17:31:14Z")

</div>

Just a few more comments and nitpicks, in the hope of keeping this  
thread as useful as possible…

Ã„lphÃ¤ BlÃ¼Ã« wrote:  
[…]

> There are numerous SMEs that assist with answering questions by the  
> minute and it would do well to thank them and be appreciative of their  
> help.

Indeed. (I think Frederick C. may very well be superhuman…)

> However, how do you communicate your topic and readily obtain answers  
> from different SMEs?
> 
> # ====================== **-------** : Rule One:
> 
> Make certain that your topic is descriptive enough to highlight your  
> issue. Having trouble with queries or models - simply say so.
> 
> Example of a bad topic thread:
> 
> “I’m having trouble, please help”
> 
> – this doesn’t describe anything and your topic might be avoided.
> 
> Example of a good topic thread:
> 
> “Need assistance with model/query issue”

Thank you, thank you, thank you! I recently saw a subject line that was  
something like “Rails problem” – which, when you think about it,  
probably describes 2/3 of the posts on this list, so it’s not terribly  
helpful. 🙂

I _do_ think that your “good” subject could be made even a bit more  
specific, but it’s a great place to start.

[…]

> ==================================================  
> Channels and Communication Forums / MIRC:

The chat medium is called IRC. mIRC is the name of one client program.

[…]

> If you need help with IRC chat and you need some code looked at, make  
> sure you go to [Pastie.org](http://Pastie.org) before asking for help:
> 
> [http://pastie.org/](http://pastie.org/)

Great idea – although Gist ( [http://gist.github.com](http://gist.github.com) ) might be even  
better than Pastie.

Again, thanks for taking the time to write all this!

## Best,

Marnen Laibow-Koser  
[http://www.marnen.org](http://www.marnen.org)  
removed\_email\_address@domain.invalid

---

<div class="post-metadata">

**Author:** ![elricstorm](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/e/da6949/32.png) [@elricstorm](https://www.ruby-forum.com/u/elricstorm)\
**Post date:** [July 13, 2009, 9:10pm UTC](https://www.ruby-forum.com/t/new-to-rails-read-this/171825/8 "2009-07-13T21:10:35Z")

</div>

So yes, it’s important to write your topic with something specific and  
interesting so that the experts want to read and help. But with some  
luck, you’ll still get views with a poorly written topic. There’s a  
better (in my opinion) reason to be specific – to help the people who  
have the same issue tomorrow. I try to write a topic such that if it  
had already existed (started by someone else last year, for example)  
my google searches would have revealed this based on title alone. In  
light of that, something along the lines of “How can I make Model.find  
use a SQL WHERE clause?” is even better than “Need assistance with  
model/query issue” (possibly you agree and were just trying to keep  
the example generic).

Sometimes if I’m not familiar with terminology I’m tempted to be  
vague, but think of it this way: if I’m specific and inaccurate,  
hopefully someone corrects me. Maybe my problem is well understood,  
and I just didn’t know how to search for it. The next person who is  
equally confused benefits from my specific topic title.

On Jul 13, 10:17 am, “Älphä Blüë” [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
wrote:

> – this describes the problem as being related to models/queries.  
> This is a great thread, by the way! I’ve been using primarily:  
> Programming Ruby: The Pragmatic Programmer’s Guide for a solid  
> understanding of the language, Agile Web D. with Rails, and  
> the guides at [rubyonrails.org](http://rubyonrails.org). I’ll try out some of your other  
> suggestions tonight. Found anything good on Rails + Ajax yet? I  
> can’t decide whether to order Scott R.'s book or not since the  
> abstract seems to indicate I can learn the same things reading  
> [script.aculo.us](http://script.aculo.us) reference material.

---

<div class="post-metadata">

**Author:** ![elricstorm](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/e/da6949/32.png) [@elricstorm](https://www.ruby-forum.com/u/elricstorm)\
**Post date:** [July 13, 2009, 9:18pm UTC](https://www.ruby-forum.com/t/new-to-rails-read-this/171825/9 "2009-07-13T21:18:11Z")

</div>

Don’t forget the official Rails Wiki - [http://wiki.rubyonrails.org](http://wiki.rubyonrails.org).  
Lots of good info there.

---

<div class="post-metadata">

**Author:** ![elricstorm](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/e/da6949/32.png) [@elricstorm](https://www.ruby-forum.com/u/elricstorm)\
**Post date:** [July 14, 2009, 3:13am UTC](https://www.ruby-forum.com/t/new-to-rails-read-this/171825/10 "2009-07-14T03:13:27Z")

</div>

To add another book to the three initially mentioned ( which are all  
very good ! )

Ruby on Rails Bible ( released late last year ! )  
[http://www.amazon.com/Ruby-Rails-Bible-Timothy-Fisher/dp/0470258225](http://www.amazon.com/Ruby-Rails-Bible-Timothy-Fisher/dp/0470258225)  
[http://www.rubyonrailsbible.com/](http://www.rubyonrailsbible.com/)

cheers, Dave P.

On Jul 14, 4:44 am, “Älphä Blüë” [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

---

<div class="post-metadata">

**Author:** ![elricstorm](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/e/da6949/32.png) [@elricstorm](https://www.ruby-forum.com/u/elricstorm)\
**Post date:** [July 13, 2009, 10:44pm UTC](https://www.ruby-forum.com/t/new-to-rails-read-this/171825/11 "2009-07-13T22:44:09Z")

</div>

> Found anything good on Rails + Ajax yet? I  
> can’t decide whether to order Scott R.'s book or not since the  
> abstract seems to indicate I can learn the same things reading  
> [script.aculo.us](http://script.aculo.us) reference material.

Well, I’m really glad you asked this particular question. I’m still  
going through a ton of resources on ajax/rails.

So, what I find wonderful about rails is that rails + ajax is like  
having a perfect marriage. They work so well with each other, it’s  
wonderful to implement both in a project. By default, rails uses  
prototype and scriptaculous but I’m looking into jQuery at the moment.

jQuery seems to be really solid.

Here’s a link which will “create” an up-to-date trend chart when you  
click on it using google trends:

[http://www.google.com/trends?q=jQuery%2CPrototype+ajax%2Cscriptaculous%2Cmootools%2Cdojo&ctab=0&geo=all&date=all&sort=0](http://www.google.com/trends?q=jQuery%2CPrototype+ajax%2Cscriptaculous%2Cmootools%2Cdojo&ctab=0&geo=all&date=all&sort=0)

jQuery  
Prototype  
Scriptaculous  
Mootools  
Dojo

You also have jMaki but that uses jQuery, but jMaki also has great  
support in certain IDE environments like netbeans. But, IDEs are  
another subject altogether.

If you notice by the trends chart, jQuery is heavily on the rise.

---

<div class="post-metadata">

**Author:** ![elricstorm](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/e/da6949/32.png) [@elricstorm](https://www.ruby-forum.com/u/elricstorm)\
**Post date:** [July 14, 2009, 3:43pm UTC](https://www.ruby-forum.com/t/new-to-rails-read-this/171825/12 "2009-07-14T15:43:05Z")

</div>

== Tutorial Injection #1 ==

Normally I would just pass some links but at times it’s a little  
refreshing to add some very simple tutorials that many people ask about.  
This tutorial is about RESTful routing and mapping resources.

=== RESTful Routing and Mapping Resources (advanced) ===

By default, whenever you create a scaffold, 7 methods are automatically  
created for you. These are index, new, edit, show, update, create, and  
destroy.

In order to map all paths to these resources a simple map resources line  
is automatically created for you in your routes.rb file using the  
pluralized name of the controller.

E.g. scaffold name product produces a controller called products

map.resources :products

This one little line now maps all of your RESTful resources for this  
controller. However, what if you had something like this?

E.g. scaffold name users\_allowed produces a controller called  
users\_alloweds

Now you wouldn’t want people to see [yourdomain.com is available for purchase - Sedo.com](http://yourdomain.com/users_alloweds)  
would you? That would look very strange or peculiar. So, you can do  
something as simple as this:

map.resources :users\_alloweds, :as =\> ‘users\_allowed’

Now your url will look like [http://yourdomain.com/users\_allowed](http://yourdomain.com/users_allowed) which is  
a little better.

But, what if you want to group certain resources by a particular  
category. Say for instance you want to group this particular url in a  
category called members. Well, you can use a nifty prefix command:

map.resources :users\_alloweds, :as =\> ‘users\_allowed’, :path\_prefix =\>  
‘members’

Now your url will look like [http://yourdomain.com/members/users\_allowed](http://yourdomain.com/members/users_allowed)  
which gives you a nice category grouping and a singular path name.

And, lastly, for this very simple tutorial, what if you wanted to take  
this further and just allow only the index method/view to be accessed  
and the rest of the resources not. A simple way:

map.resources :users\_alloweds, :as =\> ‘users\_allowed’, :only =\> ‘index’,  
:path\_prefix =\> ‘members’

(acceptable) [yourdomain.com is available for purchase - Sedo.com](http://yourdomain.com/members/users_allowed/)  
(not allowed) [yourdomain.com is available for purchase - Sedo.com](http://yourdomain.com/members/users_allowed/*anything)

====================================

If you need to understand more about routing, please visit:

> **[Rails Routing from the Outside In — Ruby on Rails Guides](https://guides.rubyonrails.org/routing.html)**
>
> Rails Routing from the Outside InThis guide covers the user-facing features of Rails routing.After reading this guide, you will know: How to interpret the code in config/routes.rb. How to construct your own routes, using either the preferred...

---

<div class="post-metadata">

**Author:** ![elricstorm](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/e/da6949/32.png) [@elricstorm](https://www.ruby-forum.com/u/elricstorm)\
**Post date:** [July 14, 2009, 7:07pm UTC](https://www.ruby-forum.com/t/new-to-rails-read-this/171825/13 "2009-07-14T19:07:21Z")

</div>

And, correcting my own self,…

It might be better to say that Rails is a “framework”… 🙂

… or more precisely, a web application framework…

Ruby = language  
Rails = framework

---

<div class="post-metadata">

**Author:** ![elricstorm](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/e/da6949/32.png) [@elricstorm](https://www.ruby-forum.com/u/elricstorm)\
**Post date:** [July 14, 2009, 6:55pm UTC](https://www.ruby-forum.com/t/new-to-rails-read-this/171825/14 "2009-07-14T18:55:00Z")

</div>

=====Ruby and Ruby on Rails=====

Perhaps I neglected to open with a proper introduction to Ruby and Ruby  
on Rails. Therefore, I feel it’s appropriate to separate and explain  
the two in a very minimalist format.

==What is Ruby?==

Ruby is a programming “language”. It is the very backbone upon which  
rails was built. Understanding Ruby is, IMHO, more important than  
understanding Rails. Without a proper understanding of the core  
programming language that Rails itself is built upon, many trivial  
things can become complicated things.

This is why it’s important to remember to read up on your Ruby  
programming language resources. There is a wealth of knowledge all  
around the web for Ruby.

[http://www.ruby-lang.org/en/](http://www.ruby-lang.org/en/)  
[http://www.ruby-forum.com/forum/4](http://www.ruby-forum.com/forum/4)

==What is Rails?==

Rails is a “platform”. It is easy to confuse and mistake apples for  
oranges but Rails is “not” a programming language. It is a development  
“platform”. It is also still a very young platform, roughly 5 years  
old. It was released as open source in July 2004.

==Making proper comparisons==

When performing research, please make sure you compare apples to apples  
and not apples to oranges. For instance:

PHP vs. Ruby on Rails (incorrect)  
– PHP is a language and Ruby on Rails is a platform

You can compare various “platforms” that PHP might use to Rails, but you  
can’t compare a language to a platform. Many people make this mistake.

---

<div class="post-metadata">

**Author:** ![elricstorm](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/e/da6949/32.png) [@elricstorm](https://www.ruby-forum.com/u/elricstorm)\
**Post date:** [July 15, 2009, 2:35am UTC](https://www.ruby-forum.com/t/new-to-rails-read-this/171825/15 "2009-07-15T02:35:01Z")

</div>

===== GitHub =====

> **[GitHub: Let’s build from here](https://github.com)**
>
> GitHub is where over 100 million developers shape the future of software, together. Contribute to the open source community, manage your Git repositories, review code like a pro, track bugs and fea...

[http://github.com/guides/home](http://github.com/guides/home)

Github is a great place to host your project(s) while you develop.

You can get a free subscription but your projects will be public and  
open source (viewable to everyone) or you can get a paid subscription  
(costs very little) and have a large storage area, multiple repositories  
and you can keep your work private.

Github can be used to commit/add new changes while you work on your  
project, much like subversion. This allows you to track changes and  
because it’s hosted online, you can add authors and other members to  
work on projects with you, if desired.

Github, along with Capistrano, can be used to help you with migrations  
and updates from development to production phases. Develop on your own  
machine, commit changes to Github and further commit changes to your  
server. It’s seamless and once working, very smooth and efficient.

The only drawback is there is a bit of a learning curve with Github and  
if you develop on windows, an even bigger learning curve exists. Check  
out the guides for more information.

----- Building a Repository and Uploading Your Project -----

1. Signup and register your account in Github
2. Download/install the latest Git release  
----- For windows this is  
[http://code.google.com/p/msysgit/downloads/list](http://code.google.com/p/msysgit/downloads/list)  
2a. See the guides section if you use linux or mac.
3. Configure your SSH key for git by opening git bash and typing:  
ssh-keygen -C “removed\_email\_address@domain.invalid” -t rsa
4. Configure your profile by typing:  
git config --global user.name “Your N.”  
git config --global user.email removed\_email\_address@domain.invalid
5. Make your rails project directory or go to an existing rails  
project.
6. Right-click (if windows) and Git Bash Here.
7. Type “git init” to configure git inside your project directory.
8. Type “touch README” and enter.
9. Type “git add README” and enter.
10. Type “git commit -m ‘first commit’” and enter
11. Type the following command to set your origin:  
git remote add origin removed\_email\_address@domain.invalid:username/YourProjectName.git
12. Type “git push origin master” to push the readme file to your  
repository.

----- Updating any new changes -----

This is where at times it can get confusing. Several times you might  
encounter errors when trying to push to origin. Here’s a pretty fail  
safe way of doing it. If anyone else would like to add to this or  
change it, please feel free.

1. Modify your rails project, add new code, etc.
2. git bash here at your project directory.
3. Type “git pull origin master” and enter.
4. Type "git add . " and enter.  
(yes that is a period)
5. Type "git commit -m ‘some message describing your changes’ and  
enter.
6. Type “git push origin master” and enter.

=========

Now if you go to your git repository online you will see all the changes  
and notes. There is a lot more that you can do with Git and I’m just  
touching on the basics and hoping to help anyone who has trouble getting  
an initial repository going.

Take care.

---

<div class="post-metadata">

**Author:** ![elricstorm](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/e/da6949/32.png) [@elricstorm](https://www.ruby-forum.com/u/elricstorm)\
**Post date:** [July 15, 2009, 5:47pm UTC](https://www.ruby-forum.com/t/new-to-rails-read-this/171825/16 "2009-07-15T17:47:23Z")

</div>

9 Resources for New R. on Rails Developers:

[http://charlesmaxwood.com/9-resources-for-new-ruby-on-rails-developers/](http://charlesmaxwood.com/9-resources-for-new-ruby-on-rails-developers/)

Cheers, Sazima

---

<div class="post-metadata">

**Author:** ![elricstorm](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/e/da6949/32.png) [@elricstorm](https://www.ruby-forum.com/u/elricstorm)\
**Post date:** [July 15, 2009, 6:34am UTC](https://www.ruby-forum.com/t/new-to-rails-read-this/171825/17 "2009-07-15T06:34:10Z")

</div>

Perhaps worth mentioning what git is: a distributed version control  
system. So, independent of github, software version control is an  
important practice.

On Jul 14, 2009, at 5:35 PM, Älphä Blüë wrote:

---

<div class="post-metadata">

**Author:** ![elricstorm](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/e/da6949/32.png) [@elricstorm](https://www.ruby-forum.com/u/elricstorm)\
**Post date:** [July 15, 2009, 6:18pm UTC](https://www.ruby-forum.com/t/new-to-rails-read-this/171825/18 "2009-07-15T18:18:03Z")

</div>

Sazima wrote:

> 9 Resources for New R. on Rails Developers:
> 
> [http://charlesmaxwood.com/9-resources-for-new-ruby-on-rails-developers/](http://charlesmaxwood.com/9-resources-for-new-ruby-on-rails-developers/)
> 
> Cheers, Sazima

Nice - bookmarked.

---

<div class="post-metadata">

**Author:** ![elricstorm](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/e/da6949/32.png) [@elricstorm](https://www.ruby-forum.com/u/elricstorm)\
**Post date:** [July 23, 2009, 5:33pm UTC](https://www.ruby-forum.com/t/new-to-rails-read-this/171825/19 "2009-07-23T17:33:03Z")

</div>

# ================================================== Ruby Platforms, Rails Versions, and Other Notables

With any language, there are always multiple versions (platforms) that  
you can use. Ruby is no different when it comes to this. In addition,  
there are specific OS (Operaing System) distributions for those  
platforms. Installation of each platform type, based on the OS type can  
be entirely different and at times confusing.

Rails also houses many different versions and each one has specific  
nuances versus the other. So, trying to find a good combination of the  
two for your development/testing/production projects can be a bit  
difficult, considering how much information we become inundated with  
over the course of documentation and help searches.

Here is a solid rule of thumb:

Don’t upgrade Ruby platforms OR Rails versions for (production). Don’t  
ever do it unless you enjoy some amount of pain, hardship, and reaching  
for Tylenol and Motrin.

Conrad T. offered me some great advice when I thought about doing  
the former. I’m going to add these thoughts because they do help:

Ruby/Rails platform upgrades:

1. Download and Install your Ruby version upgrade for non-production  
purposes only.
2. Optionally install any relevant gems or write a Ruby/Bash script to  
switch between the different implemented platforms.
3. Read the README file and execute any tests of the gem(s) you need  
for your Rails application against any of the relevant Ruby  
implementations.
4. Test against the new implementations.
5. You now have a test harnass in place for your rails application.

---

<div class="post-metadata">

**Author:** ![elricstorm](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/e/da6949/32.png) [@elricstorm](https://www.ruby-forum.com/u/elricstorm)\
**Post date:** [July 23, 2009, 6:38pm UTC](https://www.ruby-forum.com/t/new-to-rails-read-this/171825/20 "2009-07-23T18:38:28Z")

</div>

Ã„lphÃ¤ BlÃ¼Ã« wrote:

> # ================================================== Ruby Platforms, Rails Versions, and Other Notables
> 
> Ruby/Rails platform upgrades:
> 
> 1. Download and Install your Ruby version upgrade for non-production  
> purposes only.
> 2. Optionally install any relevant gems or write a Ruby/Bash script to  
> switch between the different implemented platforms.
> 3. Read the README file and execute any tests of the gem(s) you need  
> for your Rails application against any of the relevant Ruby  
> implementations.
> 4. Test against the new implementations.
> 5. You now have a test harnass in place for your rails application.

Or adopt some sort of virtualization technology, like VMware.

I run an Ubuntu virtual machine for my Rails development. When it was  
time to test out migrating Ruby and Rails to newer versions, I cloned  
the existing VM, and upgraded the clone, then pulled in the application  
from the source repository. Parallel environments with few headaches,  
and allows straight up comparative testing.

[Next page](https://www.ruby-forum.com/t/new-to-rails-read-this/171825.md?page=2)
