# Should I Learn RoR

**URL:** <https://www.ruby-forum.com/t/should-i-learn-ror/82322>\
**Category:** Rails\
**Created:** [January 19, 2007, 3:13pm UTC](https://www.ruby-forum.com/t/should-i-learn-ror/82322 "2007-01-19T15:13:49Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![MereMortal](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/b19c9b/32.png) [@MereMortal](https://www.ruby-forum.com/u/MereMortal)\
**Post date:** [January 19, 2007, 3:13pm UTC](https://www.ruby-forum.com/t/should-i-learn-ror/82322/1 "2007-01-19T15:13:49Z")

</div>

Hi Folks,  
I’m a veteran [ASP.net](http://ASP.net) programmer of 3 years, just got my MCTS for  
[ASP.net](http://ASP.net) 2.0  
I would really appreciate if anyone could give me some thoughtful  
comments on wether I should learn RoR (knowing nothing about it at all  
except looking as some astonishing screencasts)

Could you also point me to links and book recommendations?

I’d really appreciate a breakdown of why this is so worth learning.

Regards and Many Thanks in advance  
MM

---

<div class="post-metadata">

**Author:** ![MereMortal](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/b19c9b/32.png) [@MereMortal](https://www.ruby-forum.com/u/MereMortal)\
**Post date:** [January 19, 2007, 3:28pm UTC](https://www.ruby-forum.com/t/should-i-learn-ror/82322/2 "2007-01-19T15:28:49Z")

</div>

MM –

I am in a similar boat as these guys, coming from a Microsoft  
background and I can’t recommend their site enough.

> **[Hey Daddio!](http://softiesonrails.com/)**
>
> Home of Hey Daddio Software

Regards,  
Ed C.

---

<div class="post-metadata">

**Author:** ![MereMortal](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/b19c9b/32.png) [@MereMortal](https://www.ruby-forum.com/u/MereMortal)\
**Post date:** [January 19, 2007, 3:31pm UTC](https://www.ruby-forum.com/t/should-i-learn-ror/82322/3 "2007-01-19T15:31:50Z")

</div>

On 1/19/07, MereMortal [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> I’d really appreciate a breakdown of why this is so worth learning.

Reason number one: because it will make you a better [ASP.Net](http://ASP.Net) programmer.  
Or  
more generally, it will make you a better programmer and makes you more  
marketable.

Learning something like Ruby and Rails provides you with a different  
perspective on how to solve problems and how to program. This knowledge  
is  
not limited to being used just with Rails, it can be applied to problems  
being solved in [ASP.Net](http://ASP.Net).

One good video that I would recommend is Chad F.'s, Don’t Follow the  
Lemmings[1].

In terms of books, check out either THE book - Agile Web D.  
with  
Rails, or Burce Tate’s Ruby on Rails Up and Running. The later book is  
shorter, but still gives a good overall view of Rails.

[1] [http://video.google.com/videoplay?docid=-8984753198261505541](http://video.google.com/videoplay?docid=-8984753198261505541)

Chris

–  
[www.fuzzylizard.com](http://www.fuzzylizard.com)

You know you’ve achieved perfection in design, Not when you have nothing  
more to add, But when you have nothing more to take away.  
â€” Antoine de Saint-Exupery

---

<div class="post-metadata">

**Author:** ![MereMortal](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/b19c9b/32.png) [@MereMortal](https://www.ruby-forum.com/u/MereMortal)\
**Post date:** [January 19, 2007, 3:36pm UTC](https://www.ruby-forum.com/t/should-i-learn-ror/82322/4 "2007-01-19T15:36:47Z")

</div>

Thanks Ed C. and thanks Chris

Ed C. I loved the pics on the website (softies) where the guy ditches  
his huge collection of Windows Books (which I also have) for a small  
collection of Rails books.

Chris many thx for the thoughtful advice…

I’m writing here from london and I wonder if either of you know if there  
is a thriving need for Rails in the commercial sector. Is rails viable  
for fully blown commercial work or is it some purist’s dream?

---

<div class="post-metadata">

**Author:** ![MereMortal](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/b19c9b/32.png) [@MereMortal](https://www.ruby-forum.com/u/MereMortal)\
**Post date:** [January 19, 2007, 4:04pm UTC](https://www.ruby-forum.com/t/should-i-learn-ror/82322/5 "2007-01-19T16:04:56Z")

</div>

On 1/19/07, MereMortal [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> another question:  
> is it also the case that in Ruby, you just design the relational tables  
> in an RDBMS (say like MySQL0 and Ruby turns them automatically into an  
> object hierarchy? is that all you have to do?

yes, if you use a plugin such as DRYSQL. If you don’t you’ll need to  
specify has\_many and co relation stuff in your models.

---

<div class="post-metadata">

**Author:** ![MereMortal](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/b19c9b/32.png) [@MereMortal](https://www.ruby-forum.com/u/MereMortal)\
**Post date:** [January 19, 2007, 4:00pm UTC](https://www.ruby-forum.com/t/should-i-learn-ror/82322/6 "2007-01-19T16:00:14Z")

</div>

another question:  
is it also the case that in Ruby, you just design the relational tables  
in an RDBMS (say like MySQL0 and Ruby turns them automatically into an  
object hierarchy? is that all you have to do?

Regards and thanks  
MM

---

<div class="post-metadata">

**Author:** ![MereMortal](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/b19c9b/32.png) [@MereMortal](https://www.ruby-forum.com/u/MereMortal)\
**Post date:** [January 19, 2007, 4:15pm UTC](https://www.ruby-forum.com/t/should-i-learn-ror/82322/7 "2007-01-19T16:15:54Z")

</div>

thx, but as I understand it, (I didn’t know about the plug in or not),  
it’s the case isn’t it that because of he way that Rails is constructed,  
you don’t have to write tons of middleware that interfaces with your  
database schema as once you design the schema you work with it  
transparently.

I ask this because the amount of code needed in [ASP.net](http://ASP.net) to create a  
business layer (BLL) and a data layer is staggering, this is quite apart  
from the stored procedures etc…

so once the Relational tables are created, you do a couple of swishy  
commands and you’re read to see your pages, no?

---

<div class="post-metadata">

**Author:** ![MereMortal](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/b19c9b/32.png) [@MereMortal](https://www.ruby-forum.com/u/MereMortal)\
**Post date:** [January 19, 2007, 4:41pm UTC](https://www.ruby-forum.com/t/should-i-learn-ror/82322/8 "2007-01-19T16:41:33Z")

</div>

many thx to all!  
Regards  
MM

---

<div class="post-metadata">

**Author:** ![MereMortal](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/b19c9b/32.png) [@MereMortal](https://www.ruby-forum.com/u/MereMortal)\
**Post date:** [January 19, 2007, 4:27pm UTC](https://www.ruby-forum.com/t/should-i-learn-ror/82322/9 "2007-01-19T16:27:03Z")

</div>

Patrick A. wrote:

> MereMortal wrote:
> 
> > another question:  
> > is it also the case that in Ruby, you just design the relational tables  
> > in an RDBMS (say like MySQL0 and Ruby turns them automatically into an  
> > object hierarchy? is that all you have to do?
> 
> yes, if you use a plugin such as DRYSQL. If you don’t you’ll need to  
> specify has\_many and co relation stuff in your models.

You answered the high-level question.

The low-level question is this. If you have a database with a table in  
it call People, and its primary key is called ‘id’, and you have a  
config/database.yml file pointing to it, then this is all the Ruby you  
must write to access a record in the table

class Person \< ActiveRecord::Base  
end

That gives you several million convenience functions to access any  
Person by any attribute, and upgrade & write that Person back.

p = Person.find(42)  
p.name = “Forsythe”  
p.save!

The system reads the People schema and builds all the elements of the  
Person object automatically. Oh, and it also changes the number of the  
nouns, where appropriate.

Next, you might want to “refactor” your database. That’s typically  
hard, because customer data must survive upgrades. Rails provides a  
complete “migration” system to let you express database changes as  
high-level commands, such as rename\_column or add\_column.

Next, if you have relations in your database, you can match them with  
Rails relations:

class Person \< ActiveRecord::Base  
has\_many :pets  
end

That pulls in another table, Pets, and matches the person\_id in each  
pet with the id of each Person. That provides lines like…

dogs = person.pets.find\_by\_species(‘dog’)

Patrick answered the question “why doesn’t the schema reader also read  
the relations and automatically set all the has\_many and such  
directives correctly”. Default Rails doesn’t do that because you  
typically want a minor subset of all the relations.

–  
Phlip  
[http://c2.com/cgi/wiki?ZeekLand](http://c2.com/cgi/wiki?ZeekLand) ← NOT a blog!!
