Question about strftime when called from partial


#1

Hi,

I’m calling a helper I’ve written - format_time() that is called from my
views with a given time that was selected from my database and was
returned
to the view via an instance variable. When I call format_time from a
partial, I see that I get some kind of String error and the partial
won’t
render. Basically, the object being passed in to format_time is already
a
string and not in the Time format? Anything special going on with
partials?

Thanks,.


#2

Hello Sam,

2006/5/16, Sam D. removed_email_address@domain.invalid:

I’m calling a helper I’ve written - format_time() that is called from my
views with a given time that was selected from my database and was returned
to the view via an instance variable. When I call format_time from a
partial, I see that I get some kind of String error and the partial won’t
render. Basically, the object being passed in to format_time is already a
string and not in the Time format? Anything special going on with
partials?

Can you be more specific ? Show us some code ? I do that all the
time, and I have zero problems.

Bye !


#3

So here is the code:

module ApplicationHelper

def format_time(time)
time.strftime("%a %b %d, %I:%M%p")
end
end

and the partial gets the following error;

undefined method `strftime’ for “2006-05-13 15:15:00”:String

So basically it is looking at the object as a String instead of a Time
object which is odd.

Thanks.


#4

I want to add one more thing in case somebody can figure this out, so I
created another helper just for that partial called:

def format_date(time)
new_time = Time.local(*(ParseDate.parsedate(time)))
new_time.strftime("%a %b %d, %I:%M%p")
end

And this worked. So then the question is, why is it that it is coming
back
as a String rather than a Time object. The above code just takes that
string and converts it to a Time object and then does the same
formatting ?

Thanks.


#5

On May 16, 2006, at 9:03 PM, Sam D. wrote:

undefined method `strftime’ for “2006-05-13 15:15:00”:String
So basically it is looking at the object as a String instead of a
Time object which is odd.

Replace that with:

class Time
def format
strtime “%a %b %d, %I:%M%p”
end
end

Then just call format on your Time instance directly.


Eric H. - removed_email_address@domain.invalid - http://blog.segment7.net
This implementation is HODEL-HASH-9600 compliant

http://trackmap.robotcoop.com