TypeError in Classified#show

hELLO...I AM IN DOUBT WITH THIS,.... THANKS

TypeError in Classified#show Showing app/views/classified/show.rhtml where line #17 raised:

no implicit conversion to float from nil

Extracted source (around line #17):

14: 15: <strong>Date Posted:</strong> <%= distance_of_time_in_words_to_now(@classified.created_at) %> ago <br /> 16: 17: <strong>Last updated:</strong> <%= distance_of_time_in_words(@classified.updated_at, Time.now) %> ago </p> 18: <p><%= @classified.description %></p> 19: 20: <hr/>

RAILS_ROOT: ./script/../config/..

Application Trace | Framework Trace | Full Trace

#{RAILS_ROOT}/app/views/classified/show.rhtml:17:in

Request Parameters: {"id"=>"16"}

Show session dump

hELLO...I AM IN DOUBT WITH THIS,.... THANKS

TypeError in Classified#show Showing app/views/classified/show.rhtml where line #17 raised:

no implicit conversion to float from nil

Extracted source (around line #17):

14: 15: <strong>Date Posted:</strong> <%= distance_of_time_in_words_to_now(@classified.created_at) %> ago <br /> 16: 17: <strong>Last updated:</strong> <%= distance_of_time_in_words(@classified.updated_at, Time.now) %> ago </p>

Well you obviously got past the previous problem with method not found. I hope you are going to tell us what the problem was. It may well be relevant to this problem. RoR error messages are often not that clear but often it is possible to work out what is the problem. The error says that you cannot convert from nil to a float. That says that something is nil. Looking at the line of code it seems unlikely that it is Time.now that is nil so the most likely thing is @classified.updated_at. That would suggest that you have a record in the db which has not got a value in the updated_at column.

Colin

Well this time is another error... you are right...I check the DB and realize that the field updated_at it doesn't take any value itself, once I edit an item on my application. I've edited some items but no items took value at that field, but one item, ramdonly(I guess),This item is the only one I can show, because is the unique that take value at this field into the DB...so the others records don't take value, that's why I got that error message

no implicit conversion to float from nil

when I tried to show them.

Why just one record is updated when I edited it...why the others don't? Is there any problem with my DB or with the application? Thanks

I am not sure what you did to fix the previous problem. Did the field not exist so then you added it? If so then records that were in the db before you added the field will not have a created_at entry, but any new ones since then will have the date. I can assure you that there is a good reason for some having the date and others not, it is not random, though it may not be clear what the reason is.

For the moment, to stop your view crashing, you could change the code to something like <%= distance_of_time_in_words_to_now(@classified.created_at) if @classified.created_at %>

Colin

I have solved the problem with you have done to me.... thanks...

In had created the DB with all the fields I would use...I didnt add or drop any of them...but I dont know why...the field update_at doesnt update...and created_at yes. create_at took value but not updated_at

when I create an item I can upload a picture or not of that item...if I upload it them updted_at is updated.

Another thing..for instance..I have create an item X. If i want when I edit it if if I replaced the name by Y por instance....and save the changes...the DB dont save the updated date at the field uopdate_at...otherwise if I change the photo/picture or i replaced the existing one then updated_at took value...a little odd for me.

Anyway the fact is that I have solve what you suggest me.. Thanks again.