# Beginner problem

**URL:** <https://www.ruby-forum.com/t/beginner-problem/123972>\
**Category:** Rails\
**Created:** [December 22, 2007, 10:52pm UTC](https://www.ruby-forum.com/t/beginner-problem/123972 "2007-12-22T22:52:10Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![seanbear](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/9de0a6/32.png) [@seanbear](https://www.ruby-forum.com/u/seanbear)\
**Post date:** [December 22, 2007, 10:52pm UTC](https://www.ruby-forum.com/t/beginner-problem/123972/1 "2007-12-22T22:52:10Z")

</div>

Hey all you RoR experts/fanatics!

Let me start by saying: If this is the wrong forum to post in, I humbly  
apologize.

I am not normally a forum junkie or anything, but after spending 4 days  
reading half a dozen different tutorials on Ruby on Rails and trying to  
get a really tiny little application up and running, I have run into a  
brick wall that I cannot get past and I am getting desperate for help.

The current tutorial I am working with is:  
[http://www-128.ibm.com/developerworks/library/l-rubyrails/index.html](http://www-128.ibm.com/developerworks/library/l-rubyrails/index.html)

(Please let me re-emphasize here that I have read 5-6 different  
tutorials now. Please–for the love of God–do not refer me to another  
tutorial. They aren’t working for me)

From top to bottom, here is what I have done:

(1) I am using my Macbook running Leopard. It has ruby pre-installed and  
I have run the update rails gem. I also am using PostgreSQL (rather than  
the MySQL that all of the tutorials use because I am more familiar with  
PostgreSQL)

(2) I created a database called “railstest01” in ~/db  
export PGDATA=~/db/railstest01  
initdb  
createdb railstest01  
psql railstest01

```
(then, inside psql, I just created a little test table...)
CREATE TABLE Friends (
    id SERIAL NOT NULL,
    name TEXT NOT NULL,
    PRIMARY KEY (id)
);

INSERT INTO Friends (name) VALUES ('Tiffie');
INSERT INTO Friends (name) VALUES ('Stephen');
INSERT INTO Friends (name) VALUES ('Mike');
...

```

(2) rails railstest01

(3) I changed ~/railstest01/config/database.yml to be

development:  
adapter: postgresql  
database: railstest01  
host: localhost  
username: postgres  
password: 12345  
timeout: 5000

(Note: On the Macbook, I have to create a user called “postgres” in  
order to use PostgreSQL–at least, that’s what I read…)

(4) ruby script/generate model friend

(5) ruby script/generate controller friend

(6) I changed ~/railstest01/app/controllers/friend\_controller.rb to be

class FriendController \< ApplicationController  
model :friend  
scaffold :friend  
end

(7) ruby script/server

(8) I then browsed to: [http://localhost:3000/](http://localhost:3000/) and successfully saw the  
“Welcome Aboard! You’re riding Ruby on Rails!” splash screen.

(9) Lastly, I browsed to [http://localhost:3000/friend/](http://localhost:3000/friend/) and was hoping to  
see the screen that all the various tutorials told me I would see that  
lets me edit the tiny little database.

However… I have yet to be able to do that. I keep getting the same  
error (both on my Macbook and on the domain I registered so that I could  
play around with Ruby on Rails more publicly). Below is the entire error  
I am getting.

If someone could please help me clear up this issue, I would be  
extremely grateful. I am on break from the University and was hoping to  
mess around with RoR and become a devoted junkie, but I am thus far  
unable to even get my “foot in the door.”

* * *

## THE ERROR

NoMethodError in FriendController#index

undefined method `model’ for FriendController:Class

RAILS\_ROOT: /Users/postgres/ruby/railstest01  
Application Trace | Framework Trace | Full Trace

app/controllers/friend\_controller.rb:2  
/Library/Ruby/Gems/1.8/gems/activesupport-2.0.2/lib/active\_support/dependencies.rb:203:in  
`load_without_new_constant_marking' /Library/Ruby/Gems/1.8/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:203:in `load\_file’  
/Library/Ruby/Gems/1.8/gems/activesupport-2.0.2/lib/active\_support/dependencies.rb:342:in  
`new_constants_in' /Library/Ruby/Gems/1.8/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:202:in `load\_file’  
/Library/Ruby/Gems/1.8/gems/activesupport-2.0.2/lib/active\_support/dependencies.rb:94:in  
`require_or_load' /Library/Ruby/Gems/1.8/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:248:in `load\_missing\_constant’  
/Library/Ruby/Gems/1.8/gems/activesupport-2.0.2/lib/active\_support/dependencies.rb:453:in  
`const_missing' /Library/Ruby/Gems/1.8/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:465:in `const\_missing’  
/Library/Ruby/Gems/1.8/gems/activesupport-2.0.2/lib/active\_support/inflector.rb:257:in  
`constantize' /Library/Ruby/Gems/1.8/gems/activesupport-2.0.2/lib/active_support/core_ext/string/inflections.rb:148:in `constantize’  
/Library/Ruby/Gems/1.8/gems/actionpack-2.0.2/lib/action\_controller/routing.rb:1426:in  
`recognize' /Library/Ruby/Gems/1.8/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:489:in `load’  
/Library/Ruby/Gems/1.8/gems/activesupport-2.0.2/lib/active\_support/dependencies.rb:489:in  
`load' /Library/Ruby/Gems/1.8/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:342:in `new\_constants\_in’  
/Library/Ruby/Gems/1.8/gems/activesupport-2.0.2/lib/active\_support/dependencies.rb:489:in  
`load' /Library/Ruby/Gems/1.8/gems/rails-2.0.2/lib/commands/servers/mongrel.rb:64 /Library/Ruby/Gems/1.8/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:496:in `require’  
/Library/Ruby/Gems/1.8/gems/activesupport-2.0.2/lib/active\_support/dependencies.rb:342:in  
`new_constants_in' /Library/Ruby/Gems/1.8/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:496:in `require’  
/Library/Ruby/Gems/1.8/gems/rails-2.0.2/lib/commands/server.rb:39

/Library/Ruby/Gems/1.8/gems/actionpack-2.0.2/lib/action\_controller/dispatcher.rb:170:in  
`handle_request' /Library/Ruby/Gems/1.8/gems/actionpack-2.0.2/lib/action_controller/dispatcher.rb:115:in `dispatch’  
/Library/Ruby/Gems/1.8/gems/actionpack-2.0.2/lib/action\_controller/dispatcher.rb:126:in  
`dispatch_cgi' /Library/Ruby/Gems/1.8/gems/actionpack-2.0.2/lib/action_controller/dispatcher.rb:9:in `dispatch’  
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel/rails.rb:78:in  
`process' /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel/rails.rb:76:in `synchronize’  
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel/rails.rb:76:in  
`process' /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel.rb:618:in `process\_client’  
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel.rb:617:in  
`each' /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel.rb:617:in `process\_client’  
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel.rb:736:in  
`run' /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel.rb:736:in `initialize’  
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel.rb:736:in  
`new' /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel.rb:736:in `run’  
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel.rb:720:in  
`initialize' /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel.rb:720:in `new’  
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel.rb:720:in  
`run' /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel/configurator.rb:271:in `run’  
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel/configurator.rb:270:in  
`each' /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel/configurator.rb:270:in `run’  
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/mongrel-1.0.1/bin/mongrel\_rails:127:in  
`run' /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel/command.rb:211:in `run’  
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/mongrel-1.0.1/bin/mongrel\_rails:243  
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems/custom\_require.rb:27:in  
`gem_original_require' /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems/custom_require.rb:27:in `require’  
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems/custom\_require.rb:27:in  
`gem_original_require' /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems/custom_require.rb:27:in `require’  
script/server:3

app/controllers/friend\_controller.rb:2  
/Library/Ruby/Gems/1.8/gems/activesupport-2.0.2/lib/active\_support/dependencies.rb:203:in  
`load_without_new_constant_marking' /Library/Ruby/Gems/1.8/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:203:in `load\_file’  
/Library/Ruby/Gems/1.8/gems/activesupport-2.0.2/lib/active\_support/dependencies.rb:342:in  
`new_constants_in' /Library/Ruby/Gems/1.8/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:202:in `load\_file’  
/Library/Ruby/Gems/1.8/gems/activesupport-2.0.2/lib/active\_support/dependencies.rb:94:in  
`require_or_load' /Library/Ruby/Gems/1.8/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:248:in `load\_missing\_constant’  
/Library/Ruby/Gems/1.8/gems/activesupport-2.0.2/lib/active\_support/dependencies.rb:453:in  
`const_missing' /Library/Ruby/Gems/1.8/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:465:in `const\_missing’  
/Library/Ruby/Gems/1.8/gems/activesupport-2.0.2/lib/active\_support/inflector.rb:257:in  
`constantize' /Library/Ruby/Gems/1.8/gems/activesupport-2.0.2/lib/active_support/core_ext/string/inflections.rb:148:in `constantize’  
/Library/Ruby/Gems/1.8/gems/actionpack-2.0.2/lib/action\_controller/routing.rb:1426:in  
`recognize' /Library/Ruby/Gems/1.8/gems/actionpack-2.0.2/lib/action_controller/dispatcher.rb:170:in `handle\_request’  
/Library/Ruby/Gems/1.8/gems/actionpack-2.0.2/lib/action\_controller/dispatcher.rb:115:in  
`dispatch' /Library/Ruby/Gems/1.8/gems/actionpack-2.0.2/lib/action_controller/dispatcher.rb:126:in `dispatch\_cgi’  
/Library/Ruby/Gems/1.8/gems/actionpack-2.0.2/lib/action\_controller/dispatcher.rb:9:in  
`dispatch' /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel/rails.rb:78:in `process’  
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel/rails.rb:76:in  
`synchronize' /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel/rails.rb:76:in `process’  
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel.rb:618:in  
`process_client' /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel.rb:617:in `each’  
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel.rb:617:in  
`process_client' /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel.rb:736:in `run’  
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel.rb:736:in  
`initialize' /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel.rb:736:in `new’  
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel.rb:736:in  
`run' /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel.rb:720:in `initialize’  
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel.rb:720:in  
`new' /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel.rb:720:in `run’  
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel/configurator.rb:271:in  
`run' /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel/configurator.rb:270:in `each’  
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel/configurator.rb:270:in  
`run' /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/mongrel-1.0.1/bin/mongrel_rails:127:in `run’  
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel/command.rb:211:in  
`run' /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/mongrel-1.0.1/bin/mongrel_rails:243 /Library/Ruby/Gems/1.8/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:489:in `load’  
/Library/Ruby/Gems/1.8/gems/activesupport-2.0.2/lib/active\_support/dependencies.rb:489:in  
`load' /Library/Ruby/Gems/1.8/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:342:in `new\_constants\_in’  
/Library/Ruby/Gems/1.8/gems/activesupport-2.0.2/lib/active\_support/dependencies.rb:489:in  
`load' /Library/Ruby/Gems/1.8/gems/rails-2.0.2/lib/commands/servers/mongrel.rb:64 /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems/custom_require.rb:27:in `gem\_original\_require’  
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems/custom\_require.rb:27:in  
`require' /Library/Ruby/Gems/1.8/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:496:in `require’  
/Library/Ruby/Gems/1.8/gems/activesupport-2.0.2/lib/active\_support/dependencies.rb:342:in  
`new_constants_in' /Library/Ruby/Gems/1.8/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:496:in `require’  
/Library/Ruby/Gems/1.8/gems/rails-2.0.2/lib/commands/server.rb:39  
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems/custom\_require.rb:27:in  
`gem_original_require' /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems/custom_require.rb:27:in `require’  
script/server:3

Request

Parameters:

None

Show session dump

* * *

flash: !map:ActionController::Flash::FlashHash {}

Response

Headers:

{“cookie”=\>[],  
“Cache-Control”=\>“no-cache”}

---

<div class="post-metadata">

**Author:** ![seanbear](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/9de0a6/32.png) [@seanbear](https://www.ruby-forum.com/u/seanbear)\
**Post date:** [December 22, 2007, 11:13pm UTC](https://www.ruby-forum.com/t/beginner-problem/123972/2 "2007-12-22T23:13:30Z")

</div>

On Dec 22, 2007, at 3:52 PM, Sean F. wrote:

> (Note: On the Macbook, I have to create a user called “postgres” in  
> order to use PostgreSQL–at least, that’s what I read…)

Actually, it is recommended that you create the postgres user to  
_run_ postgresql as. You can create all the users you want in psql with

create user new\_user with password ‘my\_password’;

Then you have to add a line in the pg\_hba.conf file. I always create  
a separate user for each application.

> (6) I changed ~/railstest01/app/controllers/friend\_controller.rb to be
> 
> class FriendController \< ApplicationController  
> model :friend  
> scaffold :friend  
> end

Take out “model :friend” and see what happens.

Peace,  
Phillip

---

<div class="post-metadata">

**Author:** ![seanbear](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/9de0a6/32.png) [@seanbear](https://www.ruby-forum.com/u/seanbear)\
**Post date:** [December 22, 2007, 11:32pm UTC](https://www.ruby-forum.com/t/beginner-problem/123972/3 "2007-12-22T23:32:15Z")

</div>

Hello.

Unfortunately, I think the tutorial that you are working with is a bit  
out of date. I think you’ll probably run into trouble with most of  
the Rails tutorials out there right now if you’re using Rails 2.0.x  
because scaffold has been deprecated. If you Google for ‘rails  
scaffold deprecated’ or something similar you should be able to find  
some more information about it.

Katie

On Dec 22, 3:52 pm, Sean F. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

---

<div class="post-metadata">

**Author:** ![seanbear](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/9de0a6/32.png) [@seanbear](https://www.ruby-forum.com/u/seanbear)\
**Post date:** [December 23, 2007, 2:17am UTC](https://www.ruby-forum.com/t/beginner-problem/123972/4 "2007-12-23T02:17:50Z")

</div>

Basically, with the new scaffold you should do something like this:

ruby script/generate scaffold Friend name:string

This will create the Model, the Controller and the Migration that will  
create the columns you specified (in this case, name).

Then you just need to run rake db:migrate and thats it. Remember to  
delete the table you have created before running the Migration. You  
should always edit the Database trough Migrations.

The problem is that the new scaffold is now RESTful, and I bet the  
tutorials you are looking at are not based on RESTful specs. Maybe you  
should install Rails 1.2.6 and specify this version on environment.rb  
so that you can play with the old scaffold…

Felipe

---

<div class="post-metadata">

**Author:** ![seanbear](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/9de0a6/32.png) [@seanbear](https://www.ruby-forum.com/u/seanbear)\
**Post date:** [December 22, 2007, 11:36pm UTC](https://www.ruby-forum.com/t/beginner-problem/123972/5 "2007-12-22T23:36:56Z")

</div>

I forgot to add… I think you might be able to find some more  
information about the Rails 2/scaffold thing on this forum too.

---

<div class="post-metadata">

**Author:** ![seanbear](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/9de0a6/32.png) [@seanbear](https://www.ruby-forum.com/u/seanbear)\
**Post date:** [December 23, 2007, 4:11am UTC](https://www.ruby-forum.com/t/beginner-problem/123972/6 "2007-12-23T04:11:35Z")

</div>

removed\_email\_address@domain.invalid wrote:

> Basically, with the new scaffold you should do something like this:
> 
> ruby script/generate scaffold Friend name:string
> 
> This will create the Model, the Controller and the Migration that will  
> create the columns you specified (in this case, name).
> 
> Then you just need to run rake db:migrate and thats it. Remember to  
> delete the table you have created before running the Migration. You  
> should always edit the Database trough Migrations.
> 
> The problem is that the new scaffold is now RESTful, and I bet the  
> tutorials you are looking at are not based on RESTful specs. Maybe you  
> should install Rails 1.2.6 and specify this version on environment.rb  
> so that you can play with the old scaffold…
> 
> Felipe

hmm… alright then. Despite what I said previously, can someone suggest  
a step-by-step (I’m not a web programmer and I don’t know much about  
frameworks) RoR 2.0+ tutorial or guide that I can read to get on my  
feet? I don’t know anything about migrations (or even scaffolds for that  
matter, since the tutorials I read just said, “do this, now this, and  
this. yay it works!”.

Thank you all for your time, too; I appreciate it.

–Sean

---

<div class="post-metadata">

**Author:** ![seanbear](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/9de0a6/32.png) [@seanbear](https://www.ruby-forum.com/u/seanbear)\
**Post date:** [December 23, 2007, 5:04am UTC](https://www.ruby-forum.com/t/beginner-problem/123972/7 "2007-12-23T05:04:26Z")

</div>

I think it is too soon since 2.0 was released. If there is any  
tutorial out there covering 2.0, I doubt it is going to be very  
complete and aimed at beginners.

I would recommend AWDWR, 2nd edition. It covers Rails 1.2.6, but still  
it is very complete. It tells you exactly what you are doing and why.  
It has a very good tutorial and after that it covers Rails as a whole.

I started working with it in october. By now I am working on my own  
app, reading the part of the book that is not related to the depot app  
(the app you develop on the book as a tutorial) and doing coding in my  
free time. I actually never finished the depot app (not that the guide  
is useless or flawed or anything, it was mostly because of how I learn  
things).

I’ve started converting my app to 2.0 in baby steps. Everything new I  
create is RESTful, but I’m not in a hurry to refactor the “old” code.  
I think it is easier to “learn” 2.0 if you know 1.2, but thats my  
opinion.

I would advise you to go trough and create the depot app (from the  
AWDWR book) using 1.2.6. After you are done, you will be more prepared  
to start creating your own app using 2.0.

AWDWR:

> **[Agile Web Development with Rails 3.2: Ruby, Sam, Thomas, Dave, Hansson, David...](https://www.amazon.com/Agile-Development-Rails-Pragmatic-Programmers/dp/1934356549)**
>
> Agile Web Development with Rails 3.2 \[Ruby, Sam, Thomas, Dave, Hansson, David Heinemeier\] on Amazon.com. \*FREE\* shipping on qualifying offers. Agile Web Development with Rails 3.2

On Dec 22, 7:11 pm, Sean F. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)
