# Rails and Postgres

**URL:** <https://www.ruby-forum.com/t/rails-and-postgres/61219>\
**Category:** Rails\
**Created:** [May 22, 2006, 1:40am UTC](https://www.ruby-forum.com/t/rails-and-postgres/61219 "2006-05-22T01:40:01Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![craigtmackenzie](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/3d9bf3/32.png) [@craigtmackenzie](https://www.ruby-forum.com/u/craigtmackenzie)\
**Post date:** [May 22, 2006, 1:40am UTC](https://www.ruby-forum.com/t/rails-and-postgres/61219/1 "2006-05-22T01:40:01Z")

</div>

Hi, I’m new to Ruby on Rails and am having a little difficulty working  
through the ‘Rolling with Ruby on Rails’ tutorial. Can anyone help?

I’m trying to get the cookbook application to work via a Postgresql db.  
But get the following error when trying to access  
[http://127.0.0.1:3000/recipe/new](http://127.0.0.1:3000/recipe/new)

Errno::EINVAL in RecipeController#new  
Invalid argument  
RAILS\_ROOT: ./script/…/config/…

I’m using Ruby version ruby182-15.exe (Windows XP Home) running  
Postgresql version 8.1

Here’s the console output:

C:\InstantRails\rails\_apps\cookbook\>ruby script/server  
=\> Booting WEBrick…  
=\> Rails application started on [http://0.0.0.0:3000](http://0.0.0.0:3000)  
=\> Ctrl-C to shutdown server; call with --help for options  
[2006-05-22 00:32:20] INFO WEBrick 1.3.1  
[2006-05-22 00:32:20] INFO ruby 1.8.2 (2004-12-25) [i386-mswin32]  
[2006-05-22 00:32:20] INFO WEBrick::HTTPServer#start: pid=2684 port=3000  
127.0.0.1 - - [22/May/2006:00:32:26 GMT Standard Time] "GET /recipe/new  
HTTP/1.1  
" 500 12418

- → /recipe/new

Any ideas as to what I’m doing wrong? Thanks for any help… Sorry if  
this is a total newbie question!!

---

<div class="post-metadata">

**Author:** ![craigtmackenzie](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/3d9bf3/32.png) [@craigtmackenzie](https://www.ruby-forum.com/u/craigtmackenzie)\
**Post date:** [May 22, 2006, 1:52am UTC](https://www.ruby-forum.com/t/rails-and-postgres/61219/2 "2006-05-22T01:52:46Z")

</div>

Craig,

I worked through this tutorial with Postgres many months ago; I know  
it works with Postgres, but the fine details of any tweaks I applied  
aren’t exactly fresh in my mind.

That said, my guess is that you’ve got an error in your view or  
controller, rather than some sort of Postgres issue. Check for any  
typos; if you can’t find any, then post the full stack trace of your  
error message which will probably give a better indication about where  
things went off the rails .

Regards

Dave M.

---

<div class="post-metadata">

**Author:** ![craigtmackenzie](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/3d9bf3/32.png) [@craigtmackenzie](https://www.ruby-forum.com/u/craigtmackenzie)\
**Post date:** [May 22, 2006, 2:01am UTC](https://www.ruby-forum.com/t/rails-and-postgres/61219/3 "2006-05-22T02:01:43Z")

</div>

Wow! Thanks for the quick response David.

Here are the details.

recipe\_controller.rb:

class RecipeController \< ApplicationController  
scaffold :recipe  
end

Full trace is:  
c:/ruby/lib/ruby/1.8/readbytes.rb:16:in `read' c:/ruby/lib/ruby/1.8/readbytes.rb:16:in`readbytes’  
c:/ruby/lib/ruby/gems/1.8/gems/postgres-pr-0.4.0/lib/postgres-pr/message.rb:32:in  
`read' c:/ruby/lib/ruby/gems/1.8/gems/postgres-pr-0.4.0/lib/postgres-pr/connection.rb:30:in`initialize’  
c:/ruby/lib/ruby/gems/1.8/gems/postgres-pr-0.4.0/lib/postgres-pr/connection.rb:29:in  
`loop' c:/ruby/lib/ruby/gems/1.8/gems/postgres-pr-0.4.0/lib/postgres-pr/connection.rb:29:in`initialize’  
c:/ruby/lib/ruby/gems/1.8/gems/postgres-pr-0.4.0/lib/postgres-pr/postgres-compat.rb:23:in  
`new' c:/ruby/lib/ruby/gems/1.8/gems/postgres-pr-0.4.0/lib/postgres-pr/postgres-compat.rb:23:in`initialize’  
c:/ruby/lib/ruby/gems/1.8/gems/activerecord-1.14.2/lib/active\_record/connection\_adapters/postgresql\_adapter.rb:24:in  
`connect' c:/ruby/lib/ruby/gems/1.8/gems/activerecord-1.14.2/lib/active_record/connection_adapters/postgresql_adapter.rb:24:in`postgresql\_connection’  
c:/ruby/lib/ruby/gems/1.8/gems/activerecord-1.14.2/lib/active\_record/connection\_adapters/abstract/connection\_specification.rb:251:in  
`send' c:/ruby/lib/ruby/gems/1.8/gems/activerecord-1.14.2/lib/active_record/connection_adapters/abstract/connection_specification.rb:251:in`connection\_without\_query\_cache=’  
c:/ruby/lib/ruby/gems/1.8/gems/activerecord-1.14.2/lib/active\_record/query\_cache.rb:54:in  
`connection=' c:/ruby/lib/ruby/gems/1.8/gems/activerecord-1.14.2/lib/active_record/connection_adapters/abstract/connection_specification.rb:220:in`retrieve\_connection’  
c:/ruby/lib/ruby/gems/1.8/gems/activerecord-1.14.2/lib/active\_record/connection\_adapters/abstract/connection\_specification.rb:78:in  
`connection' c:/ruby/lib/ruby/gems/1.8/gems/activerecord-1.14.2/lib/active_record/base.rb:696:in`columns’  
c:/ruby/lib/ruby/gems/1.8/gems/activerecord-1.14.2/lib/active\_record/base.rb:1969:in  
`attributes_from_column_definition' c:/ruby/lib/ruby/gems/1.8/gems/activerecord-1.14.2/lib/active_record/base.rb:1351:in`initialize\_without\_callbacks’  
c:/ruby/lib/ruby/gems/1.8/gems/activerecord-1.14.2/lib/active\_record/callbacks.rb:236:in  
`initialize' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.12.1/lib/action_controller/scaffolding.rb:124:in`new’  
c:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.12.1/lib/action\_controller/scaffolding.rb:124:in  
`new' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.12.1/lib/action_controller/base.rb:910:in`send’  
c:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.12.1/lib/action\_controller/base.rb:910:in  
`perform_action_without_filters' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.12.1/lib/action_controller/filters.rb:368:in`perform\_action\_without\_benchmark’  
c:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.12.1/lib/action\_controller/benchmarking.rb:69:in  
`perform_action_without_rescue' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.12.1/lib/action_controller/benchmarking.rb:69:in`measure’  
c:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.12.1/lib/action\_controller/benchmarking.rb:69:in  
`perform_action_without_rescue' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.12.1/lib/action_controller/rescue.rb:82:in`perform\_action’  
c:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.12.1/lib/action\_controller/base.rb:381:in  
`send' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.12.1/lib/action_controller/base.rb:381:in`process\_without\_filters’  
c:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.12.1/lib/action\_controller/filters.rb:377:in  
`process_without_session_management_support' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.12.1/lib/action_controller/session_management.rb:117:in`process’  
c:/ruby/lib/ruby/gems/1.8/gems/rails-1.1.2/lib/dispatcher.rb:38:in  
`dispatch' c:/ruby/lib/ruby/gems/1.8/gems/rails-1.1.2/lib/webrick_server.rb:115:in`handle\_dispatch’  
c:/ruby/lib/ruby/gems/1.8/gems/rails-1.1.2/lib/webrick\_server.rb:81:in  
`service' c:/ruby/lib/ruby/1.8/webrick/httpserver.rb:104:in`service’  
c:/ruby/lib/ruby/1.8/webrick/httpserver.rb:65:in `run' c:/ruby/lib/ruby/1.8/webrick/server.rb:155:in`start\_thread’  
c:/ruby/lib/ruby/1.8/webrick/server.rb:144:in `start' c:/ruby/lib/ruby/1.8/webrick/server.rb:144:in`start\_thread’  
c:/ruby/lib/ruby/1.8/webrick/server.rb:94:in `start' c:/ruby/lib/ruby/1.8/webrick/server.rb:89:in`each’  
c:/ruby/lib/ruby/1.8/webrick/server.rb:89:in `start' c:/ruby/lib/ruby/1.8/webrick/server.rb:79:in`start’  
c:/ruby/lib/ruby/1.8/webrick/server.rb:79:in `start' c:/ruby/lib/ruby/gems/1.8/gems/rails-1.1.2/lib/webrick_server.rb:67:in`dispatch’  
c:/ruby/lib/ruby/gems/1.8/gems/rails-1.1.2/lib/commands/servers/webrick.rb:59  
c:/ruby/lib/ruby/site\_ruby/1.8/rubygems/custom\_require.rb:18:in  
`require__' c:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:18:in`require’  
c:/ruby/lib/ruby/gems/1.8/gems/activesupport-1.3.1/lib/active\_support/dependencies.rb:147:in  
`require' c:/ruby/lib/ruby/gems/1.8/gems/rails-1.1.2/lib/commands/server.rb:30 c:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:18:in`require\_\_’  
c:/ruby/lib/ruby/site\_ruby/1.8/rubygems/custom\_require.rb:18:in  
`require' c:/ruby/lib/ruby/gems/1.8/gems/activesupport-1.3.1/lib/active_support/dependencies.rb:147:in`require’  
script/server:3

## And session dump is:

flash: !ruby/hash:ActionController::Flash::FlashHash {}

---

<div class="post-metadata">

**Author:** ![craigtmackenzie](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/3d9bf3/32.png) [@craigtmackenzie](https://www.ruby-forum.com/u/craigtmackenzie)\
**Post date:** [May 22, 2006, 3:34am UTC](https://www.ruby-forum.com/t/rails-and-postgres/61219/4 "2006-05-22T03:34:33Z")

</div>

I just did the tutorial with postgres (I like Postgres as it is a ACID  
complaint DB), it worked find.

Can you post the code of your controller I may be able to do a quick  
comparison check.

Some strange errors messages occur with rails.

---

<div class="post-metadata">

**Author:** ![craigtmackenzie](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/3d9bf3/32.png) [@craigtmackenzie](https://www.ruby-forum.com/u/craigtmackenzie)\
**Post date:** [May 22, 2006, 6:27pm UTC](https://www.ruby-forum.com/t/rails-and-postgres/61219/5 "2006-05-22T18:27:47Z")

</div>

Also, does it matter which encoding is used for the postgresql db?

---

<div class="post-metadata">

**Author:** ![craigtmackenzie](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/3d9bf3/32.png) [@craigtmackenzie](https://www.ruby-forum.com/u/craigtmackenzie)\
**Post date:** [May 22, 2006, 11:49am UTC](https://www.ruby-forum.com/t/rails-and-postgres/61219/6 "2006-05-22T11:49:02Z")

</div>

Sure:

class RecipeController \< ApplicationController  
scaffold :recipe  
end

Could you perhaps describe which versions of each file you were using?  
And which/how you installed the postgres interpreter? Maybe I’m using  
incompatible versions.

Thanks for your help.

---

<div class="post-metadata">

**Author:** ![craigtmackenzie](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/3d9bf3/32.png) [@craigtmackenzie](https://www.ruby-forum.com/u/craigtmackenzie)\
**Post date:** [May 22, 2006, 9:40pm UTC](https://www.ruby-forum.com/t/rails-and-postgres/61219/7 "2006-05-22T21:40:30Z")

</div>

I doubt that matters. From your backtrace it is having trouble  
connecting to the database at initialization time, do you have a  
firewall or something like that …

Here’s a stanza from my database.yml …

development:  
adapter: postgresql  
database: rosebank\_development  
username: guido  
password:  
encoding: UTF8  
host: localhost  
port: 5444

What does your database.yml say?

If the problem persists, you may want to try using the Unix sockets  
to connect instead …

– G.

---

<div class="post-metadata">

**Author:** ![craigtmackenzie](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/3d9bf3/32.png) [@craigtmackenzie](https://www.ruby-forum.com/u/craigtmackenzie)\
**Post date:** [May 23, 2006, 1:52am UTC](https://www.ruby-forum.com/t/rails-and-postgres/61219/8 "2006-05-23T01:52:55Z")

</div>

this is my first post

---

<div class="post-metadata">

**Author:** ![craigtmackenzie](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/3d9bf3/32.png) [@craigtmackenzie](https://www.ruby-forum.com/u/craigtmackenzie)\
**Post date:** [May 23, 2006, 1:42am UTC](https://www.ruby-forum.com/t/rails-and-postgres/61219/9 "2006-05-23T01:42:10Z")

</div>

On May 22, 2006, at 9:27 AM, Craig McDonnell wrote:

> Also, does it matter which encoding is used for the postgresql db?

it depends on the encoding requirements of your application. 🙂

…but for any generic Rails application… no…

You might try the postgres adapter not the postgres-pr one.

Robby

–  
Robby R.  
Founder & Executive Director

PLANET ARGON, LLC  
Ruby on Rails Development, Consulting & Hosting

> **[Planet Argon](https://www.planetargon.com)**
>
> Planet Argon is a Ruby on Rails development agency specializing in maintenance and support for existing Rails apps. Based in Portland, OR, Planet Argon has been a member of the Rails community since 2004.

[www.robbyonrails.com](http://www.robbyonrails.com)

+1 503 445 2457  
+1 877 55 ARGON [toll free]  
+1 815 642 4968 [fax]
