Camping not saving @state

I have a sqlite3 database with the sessions table and schema set up
correctly. Sessions are created fine and put in the table, the cookie
is set with the correct hash and the hash is found again but when
using @state the values aren’t updated in the table.

I know that Session::service is called and the contents of the record
are put into session like so:
#<Camping::Models::Session id: 1, hashid: "iSCMSIzV7ITsRTr0UMA8Gko3LEnY3bw4", created_at: "2008-07-24 17:11:43", ivars: {}>

I do @state.user = 5, then it then gets as far as making session look
like this:
#<Camping::Models::Session id: 1, hashid: "iSCMSIzV7ITsRTr0UMA8Gko3LEnY3bw4", created_at: "2008-07-24 17:11:43", ivars: {"TLCMS"=>{"user"=>5}}>

But then session.save doesn’t write to the table, and doesn’t throw an
error (session.save! doesn’t either). Can anyone see what is going
wrong?

···

--
Fred O. Phillips
BBC7 7572 755F 83E0 3209 504A E4F7 874F 1545 9D41

As far as I remember the saving is automatic, why_ always makes it easier not harder
you shouldn't need to call save. Have you checked the database from sqlite's utility?

Fred Phillips wrote:

···

I have a sqlite3 database with the sessions table and schema set up
correctly. Sessions are created fine and put in the table, the cookie
is set with the correct hash and the hash is found again but when
using @state the values aren’t updated in the table.

I know that Session::service is called and the contents of the record
are put into session like so:
#<Camping::Models::Session id: 1, hashid: "iSCMSIzV7ITsRTr0UMA8Gko3LEnY3bw4", created_at: "2008-07-24 17:11:43", ivars: {}>

I do @state.user = 5, then it then gets as far as making session look
like this:
#<Camping::Models::Session id: 1, hashid: "iSCMSIzV7ITsRTr0UMA8Gko3LEnY3bw4", created_at: "2008-07-24 17:11:43", ivars: {"TLCMS"=>{"user"=>5}}>

But then session.save doesn’t write to the table, and doesn’t throw an
error (session.save! doesn’t either). Can anyone see what is going
wrong?

Okay the problem was with ActiveRecord 2.1, downgrading to 2.0.2 fixed
it.

···

--
Fred O. Phillips
http://fophillips.org
BBC7 7572 755F 83E0 3209 504A E4F7 874F 1545 9D41

I’m not calling save, I just added prints in the camping source for
debugging and I found that it does in fact call save, but isn’t saved.

Looking through sqlite3(1) the sessions are created, but their
contents is not saved.

···

On Tue Jul 29 06:43:14 2008, jonty wrote:

As far as I remember the saving is automatic, why_ always makes it easier
not harder
you shouldn't need to call save. Have you checked the database from
sqlite's utility?

Fred Phillips wrote:

I have a sqlite3 database with the sessions table and schema set up
correctly. Sessions are created fine and put in the table, the cookie
is set with the correct hash and the hash is found again but when
using @state the values aren’t updated in the table.

I know that Session::service is called and the contents of the record
are put into session like so:
#<Camping::Models::Session id: 1, hashid:
"iSCMSIzV7ITsRTr0UMA8Gko3LEnY3bw4", created_at: "2008-07-24 17:11:43",
ivars: {}>

I do @state.user = 5, then it then gets as far as making session look
like this:
#<Camping::Models::Session id: 1, hashid:
"iSCMSIzV7ITsRTr0UMA8Gko3LEnY3bw4", created_at: "2008-07-24 17:11:43",
ivars: {"TLCMS"=>{"user"=>5}}>

But then session.save doesn’t write to the table, and doesn’t throw an
error (session.save! doesn’t either). Can anyone see what is going
wrong?

--
Fred O. Phillips

BBC7 7572 755F 83E0 3209 504A E4F7 874F 1545 9D41

Thanks for finding the problem as I am using Camping quite a bit at the minute - do you know how to use your own database instead of camping.db?
I tried putting another db name in the postamble as I have seen in examples but it still just uses camping.db.

Fred Phillips wrote:

···

Okay the problem was with ActiveRecord 2.1, downgrading to 2.0.2 fixed
it.

I am using FastCGI, my dispatch.rb looks like this:

require 'rubygems'
gem 'activerecord', '=2.0.2'
require 'camping/fastcgi'

Camping::Models::Base.establish_connection :adapter => 'sqlite3',
  :database => '/tmp/tlcms.rb'

Camping::FastCGI.serve("/usr/pkg/share/httpd/htdocs/tlcms2/tlcms.rb")

So I don’t need a PostAmble.

···

On Wed Jul 30 00:40:11 2008, jonty wrote:

Thanks for finding the problem as I am using Camping quite a bit at the
minute - do you know how to use your own database instead of camping.db?
I tried putting another db name in the postamble as I have seen in examples
but it still just uses camping.db.

Fred Phillips wrote:

Okay the problem was with ActiveRecord 2.1, downgrading to 2.0.2 fixed
it.

--
Fred O. Phillips

BBC7 7572 755F 83E0 3209 504A E4F7 874F 1545 9D41

Sorry, that should be /tmp/tlcms.db

···

On Wed Jul 30 01:15:29 2008, Fred Phillips wrote:

Camping::Models::Base.establish_connection :adapter => 'sqlite3',
  :database => '/tmp/tlcms.rb'

--
Fred O. Phillips

BBC7 7572 755F 83E0 3209 504A E4F7 874F 1545 9D41