Date formatting error


#1

Hi All,

I’m a bit stumped. All I’m trying to do is format a date and I get an
error. Details below.

I have a partial to list all “notes” associated with a “client” with the
following code.

<% for note in @client.notes %>


<%=h note.note_text %> Posted on <%=h note.created_at.strftime("%I:%M") %> by <%=h note.created_by %> <% end %>

Which gives me the error…

|“You have a nil object when you didn’t expect it! The error occured
while evaluating nil.strftime”

When I remove the |.strftime("%I:%M") from note.created_at the display
works correctly showing the data with the default format of “Fri Feb 17
22:05:10 Central Standard Time 2006 by Sam S.”

I’m still fairly new to Rails so please bear with me.

Thanks,

Sam


#2

On Fri, 2006-02-17 at 22:54 -0600, Sam S. wrote:

<%=h note.note_text %>
works correctly showing the data with the default format of “Fri Feb
17 22:05:10 Central Standard Time 2006 by Sam S.”

I’m still fairly new to Rails so please bear with me.


is it possible that you have records in your table that don’t have this
data? Did you create the records first, then add the ‘created_at’ field
later which might mean that you have records where this field is null?

Craig


#3

Craig W. wrote:

while evaluating nil.strftime"
data? Did you create the records first, then add the ‘created_at’ field

I did add the field in later but it does have the correct data it shows
it as below without the formatting.

“Fri Feb 17 22:05:10 Central Standard Time 2006 by Sam S.”

That is why I’m stumped at the error I get when attempting to format the
data.

Sam


#4

On Fri, 2006-02-17 at 22:54 -0600, Sam S. wrote:

<%=h note.note_text %>
works correctly showing the data with the default format of “Fri Feb
17 22:05:10 Central Standard Time 2006 by Sam S.”

I’m still fairly new to Rails so please bear with me.


try removing the ‘h’

<%= note.created_at.strftime("%I:%M") %>

Craig


#5

Craig W. wrote:

while evaluating nil.strftime"

Nope, same error.


#6

Craig W. wrote:

On Fri, 2006-02-17 at 22:54 -0600, Sam S. wrote:

<%=h note.note_text %>
works correctly showing the data with the default format of “Fri Feb
17 22:05:10 Central Standard Time 2006 by Sam S.”

I’m still fairly new to Rails so please bear with me.


try removing the ‘h’

<%= note.created_at.strftime("%I:%M") %>

Craig

I can’t seem to reproduce the error, using some test data the strftime
you are using worked flawlessly. Perhaps try updating Rails to the
latest version? If that doesn’t work I’m afraid I’m out of ideas.