Find Last Errors

Hi guys: This is driving me crazy. Can someone please point me in the
right direction:

I'm trying to get the last record from my table. Every time I do this,
it tells me there is no method, other than id.

theconditions = "criteria = '"+t+"'"
lastrec = Capture.last(:all, :conditions => theconditions)

This table has a number of fields in it
id, created_at, tid, text

When I call lastrec.id, it works
When I call lastrec.created_at it gives me (undefined method
`created_at' for nil:NilClass)

Any ideas? Thanks for your help!

Chris Kalaboukis wrote:

Hi guys: This is driving me crazy. Can someone please point me in the
right direction:

When I call lastrec.id, it works
When I call lastrec.created_at it gives me (undefined method
`created_at' for nil:NilClass)

Any ideas? Thanks for your help!

If you look in your database, what does this id match to?

Aldric Giacomoni wrote:

Chris Kalaboukis wrote:

Hi guys: This is driving me crazy. Can someone please point me in the
right direction:

When I call lastrec.id, it works
When I call lastrec.created_at it gives me (undefined method
`created_at' for nil:NilClass)

Any ideas? Thanks for your help!

If you look in your database, what does this id match to?

There is a record there, with that ID. I just can't seem to call it up
with a last command...

Hi guys: This is driving me crazy. Can someone please point me in the
right direction:

I'm trying to get the last record from my table. Every time I do this,
it tells me there is no method, other than id.

theconditions = "criteria = '"+t+"'"
lastrec = Capture.last(:all, :conditions => theconditions)

This table has a number of fields in it
id, created_at, tid, text

When I call lastrec.id, it works
When I call lastrec.created_at it gives me (undefined method
`created_at' for nil:NilClass)

I feel sure you must be mistaken somehow. Are you saying that if you
immediately follow the Capture.last line with
id = lastrec.id
created_at = lastrec.created_at
then the first line passes but you get the nil error on the second? I
will be surprised if that is the case (I am often surprised mind you).

One thing to try is to run that code in the ruby console.
Another is to use ruby-debug to break in after the Capture.last line
and examine the data at that point.
See the rails guide on debugging if you do not know about ruby-debug
(http://guides.rubyonrails.org/)

Colin

Hi guys: This is driving me crazy. Can someone please point me in the
right direction:

I'm trying to get the last record from my table. Every time I do this,
it tells me there is no method, other than id.

theconditions = "criteria = '"+t+"'"
lastrec = Capture.last(:all, :conditions => theconditions)

This table has a number of fields in it
id, created_at, tid, text

When I call lastrec.id, it works
When I call lastrec.created_at it gives me (undefined method
`created_at' for nil:NilClass)

I feel sure you must be mistaken somehow. Are you saying that if you
immediately follow the Capture.last line with
id = lastrec.id
created_at = lastrec.created_at
then the first line passes but you get the nil error on the second? I
will be surprised if that is the case (I am often surprised mind you).

One thing to try is to run that code in the ruby console.
Another is to use ruby-debug to break in after the Capture.last line
and examine the data at that point.
See the rails guide on debugging if you do not know about ruby-debug
(http://guides.rubyonrails.org/)

Colin

Hmm, does the id happen to be 4? :wink:

try:

puts nil.id

Last relative to what? If you mean: most recently created, try:

lastrec = Capture.first(:conditions => ['criteria = ?', t], :order => 'created_at DESC')

-Rob

Rob Biedenharn http://agileconsultingllc.com
Rob@AgileConsultingLLC.com

Hi guys: This is driving me crazy. Can someone please point me in the
right direction:

I'm trying to get the last record from my table. Every time I do this,
it tells me there is no method, other than id.

theconditions = "criteria = '"+t+"'"
lastrec = Capture.last(:all, :conditions => theconditions)

This table has a number of fields in it
id, created_at, tid, text

When I call lastrec.id, it works
When I call lastrec.created_at it gives me (undefined method
`created_at' for nil:NilClass)

I feel sure you must be mistaken somehow. Are you saying that if you
immediately follow the Capture.last line with
id = lastrec.id
created_at = lastrec.created_at
then the first line passes but you get the nil error on the second? I
will be surprised if that is the case (I am often surprised mind you).

One thing to try is to run that code in the ruby console.
Another is to use ruby-debug to break in after the Capture.last line
and examine the data at that point.
See the rails guide on debugging if you do not know about ruby-debug
(http://guides.rubyonrails.org/)

Colin

Hmm, does the id happen to be 4? :wink:

try:
> puts nil.id

I suspect you may well have hit the nail on the head, but why would
accessing nil.id in the code not generate the 'Called id for nil'
error? It does for me.

Colin

development mode versus something else? (I think the whiny NilClass is only for development)

-Rob

Rob Biedenharn http://agileconsultingllc.com
Rob@AgileConsultingLLC.com