ActiveSupport::TimeWithZone to_s(:format) not working in view?

Hello, i got some strange behaviour here in my app i cannot work out.
Maybe here someone knows a soloution for this?
In the view:

<% @product.comments.each do |comment| %>
   <div class="comment">
     <p><%= comment.created_at.to_s(:db) %></p>
  </div>
<% end %>

So the error i get is: wrong number of arguments (1 for 0) for the
to_s(:db)
When i ask the object comment.created_at.class what class it is, it
gives me: ActiveSupport::TimeWithZone
In the console i can take this object and use the to_s(:format) method
on it. Only in the view it is not working. Does anybody know a
solution to this?
I use Rails 3.0 here with MySQL as DB.

Thanks in advance,
Andreas

to_s formats with .strftime

sorry i meant to say that dates format with .strftime not to_s

Hello radhmes brito,

as you can see here: http://api.rubyonrails.org/classes/ActiveSupport/TimeWithZone.html
it is possible to output a formatted like i tried. You can simply set
it up in /config/initializeres/time_formats.rb like this:
Time::DATE_FORMATS.merge!(
  :mydate => '%d.%m.%Y'
)

Then you should be able to call to_s(:mydate) on and
ActiveSupport::TimeWitzZone Object. That works fine in the console,
but not in the view.

So you mentioned strftime to format the time. I tried that also :wink:
The only thing that changes then ist the error message:

undefined method `strftime' for nil:NilClass

But how can this be a NilClass? The attribute is set in the database,
i checked that already via hand and if i ask the object for its class,
it gives me ActiveSupport::TimeWithZone back.

i once used something like to_s(:mydate) but it never worked so i always go for the sure thing.

can you show the stack for both errors?

Hello radhmes brito,

here both traces for the errors.

For comment.created_at.strftime("%Y.%m.%d"):

undefined method `strftime' for nil:NilClass
activesupport (3.0.0) lib/active_support/whiny_nil.rb:48:in
`method_missing'
app/views/products/show.html.erb:64:in
`_app_views_products_show_html_erb___1342911154_2182912460_0'
activerecord (3.0.0) lib/active_record/associations/
association_collection.rb:430:in `method_missing'
activerecord (3.0.0) lib/active_record/associations/
association_proxy.rb:216:in `method_missing'
activerecord (3.0.0) lib/active_record/associations/
association_proxy.rb:216:in `each'
activerecord (3.0.0) lib/active_record/associations/
association_proxy.rb:216:in `send'
activerecord (3.0.0) lib/active_record/associations/
association_proxy.rb:216:in `method_missing'
activerecord (3.0.0) lib/active_record/associations/
association_collection.rb:430:in `method_missing'
app/views/products/show.html.erb:62:in
`_app_views_products_show_html_erb___1342911154_2182912460_0'
actionpack (3.0.0) lib/action_view/template.rb:135:in `send'
actionpack (3.0.0) lib/action_view/template.rb:135:in `render'
activesupport (3.0.0) lib/active_support/notifications.rb:54:in
`instrument'
actionpack (3.0.0) lib/action_view/template.rb:127:in `render'
actionpack (3.0.0) lib/action_view/render/rendering.rb:59:in
`_render_template'
activesupport (3.0.0) lib/active_support/notifications.rb:52:in
`instrument'
activesupport (3.0.0) lib/active_support/notifications/instrumenter.rb:
21:in `instrument'
activesupport (3.0.0) lib/active_support/notifications.rb:52:in
`instrument'
actionpack (3.0.0) lib/action_view/render/rendering.rb:56:in
`_render_template'
actionpack (3.0.0) lib/action_view/render/rendering.rb:26:in `render'
actionpack (3.0.0) lib/abstract_controller/rendering.rb:114:in
`_render_template'
actionpack (3.0.0) lib/abstract_controller/rendering.rb:108:in
`render_to_body'
actionpack (3.0.0) lib/action_controller/metal/renderers.rb:47:in
`render_to_body'
actionpack (3.0.0) lib/action_controller/metal/compatibility.rb:55:in
`render_to_body'
actionpack (3.0.0) lib/abstract_controller/rendering.rb:101:in
`render_to_string'
actionpack (3.0.0) lib/abstract_controller/rendering.rb:92:in `render'
actionpack (3.0.0) lib/action_controller/metal/rendering.rb:17:in
`render'
actionpack (3.0.0) lib/action_controller/metal/instrumentation.rb:
40:in `render_without_meta_tags'
activesupport (3.0.0) lib/active_support/core_ext/benchmark.rb:5:in
`ms'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/
1.8/benchmark.rb:308:in `realtime'
activesupport (3.0.0) lib/active_support/core_ext/benchmark.rb:5:in
`ms'
actionpack (3.0.0) lib/action_controller/metal/instrumentation.rb:
40:in `render_without_meta_tags'
actionpack (3.0.0) lib/action_controller/metal/instrumentation.rb:
78:in `cleanup_view_runtime'
activerecord (3.0.0) lib/active_record/railties/controller_runtime.rb:
15:in `cleanup_view_runtime'
actionpack (3.0.0) lib/action_controller/metal/instrumentation.rb:
39:in `render_without_meta_tags'
vendor/plugins/meta-tags/lib/meta_tags/controller_helper.rb:28:in
`render'
actionpack (3.0.0) lib/action_controller/metal/implicit_render.rb:
10:in `default_render'
actionpack (3.0.0) lib/action_controller/metal/mime_responds.rb:261:in
`retrieve_response_from_mimes'
actionpack (3.0.0) lib/action_controller/metal/mime_responds.rb:192:in
`call'
actionpack (3.0.0) lib/action_controller/metal/mime_responds.rb:192:in
`respond_to'
app/controllers/products_controller.rb:20:in `show'
actionpack (3.0.0) lib/action_controller/metal/implicit_render.rb:4:in
`send_action'
actionpack (3.0.0) lib/action_controller/metal/implicit_render.rb:4:in
`send_action'
actionpack (3.0.0) lib/abstract_controller/base.rb:150:in
`process_action'
actionpack (3.0.0) lib/action_controller/metal/rendering.rb:11:in
`process_action'
actionpack (3.0.0) lib/abstract_controller/callbacks.rb:18:in
`process_action'
activesupport (3.0.0) lib/active_support/callbacks.rb:440:in
`_run__1118320962__process_action__453433196__callbacks'
activesupport (3.0.0) lib/active_support/callbacks.rb:409:in `send'
activesupport (3.0.0) lib/active_support/callbacks.rb:409:in
`_run_process_action_callbacks'
activesupport (3.0.0) lib/active_support/callbacks.rb:93:in `send'
activesupport (3.0.0) lib/active_support/callbacks.rb:93:in
`run_callbacks'
actionpack (3.0.0) lib/abstract_controller/callbacks.rb:17:in
`process_action'
actionpack (3.0.0) lib/action_controller/metal/instrumentation.rb:
30:in `process_action'
activesupport (3.0.0) lib/active_support/notifications.rb:52:in
`instrument'
activesupport (3.0.0) lib/active_support/notifications/instrumenter.rb:
21:in `instrument'
activesupport (3.0.0) lib/active_support/notifications.rb:52:in
`instrument'
actionpack (3.0.0) lib/action_controller/metal/instrumentation.rb:
29:in `process_action'
actionpack (3.0.0) lib/action_controller/metal/rescue.rb:17:in
`process_action'
actionpack (3.0.0) lib/abstract_controller/base.rb:119:in `process'
actionpack (3.0.0) lib/abstract_controller/rendering.rb:40:in
`process'
actionpack (3.0.0) lib/action_controller/metal.rb:133:in `dispatch'
actionpack (3.0.0) lib/action_controller/metal/rack_delegation.rb:
14:in `dispatch'
actionpack (3.0.0) lib/action_controller/metal.rb:173:in `action'
actionpack (3.0.0) lib/action_dispatch/routing/route_set.rb:62:in
`call'
actionpack (3.0.0) lib/action_dispatch/routing/route_set.rb:62:in
`dispatch'
actionpack (3.0.0) lib/action_dispatch/routing/route_set.rb:27:in
`call'
rack-mount (0.6.13) lib/rack/mount/route_set.rb:148:in `call'
rack-mount (0.6.13) lib/rack/mount/code_generation.rb:93:in
`recognize'
rack-mount (0.6.13) lib/rack/mount/code_generation.rb:68:in
`optimized_each'
rack-mount (0.6.13) lib/rack/mount/code_generation.rb:92:in
`recognize'
rack-mount (0.6.13) lib/rack/mount/route_set.rb:139:in `call'
actionpack (3.0.0) lib/action_dispatch/routing/route_set.rb:492:in
`call'
actionpack (3.0.0) lib/action_dispatch/middleware/
best_standards_support.rb:17:in `call'
actionpack (3.0.0) lib/action_dispatch/middleware/head.rb:14:in `call'
rack (1.2.1) lib/rack/methodoverride.rb:24:in `call'
actionpack (3.0.0) lib/action_dispatch/middleware/params_parser.rb:
21:in `call'
actionpack (3.0.0) lib/action_dispatch/middleware/flash.rb:182:in
`call'
actionpack (3.0.0) lib/action_dispatch/middleware/session/
abstract_store.rb:149:in `call'
actionpack (3.0.0) lib/action_dispatch/middleware/cookies.rb:287:in
`call'
activerecord (3.0.0) lib/active_record/query_cache.rb:32:in `call'
activerecord (3.0.0) lib/active_record/connection_adapters/abstract/
query_cache.rb:28:in `cache'
activerecord (3.0.0) lib/active_record/query_cache.rb:12:in `cache'
activerecord (3.0.0) lib/active_record/query_cache.rb:31:in `call'
activerecord (3.0.0) lib/active_record/connection_adapters/abstract/
connection_pool.rb:355:in `call'
actionpack (3.0.0) lib/action_dispatch/middleware/callbacks.rb:46:in
`call'
activesupport (3.0.0) lib/active_support/callbacks.rb:415:in
`_run_call_callbacks'
actionpack (3.0.0) lib/action_dispatch/middleware/callbacks.rb:44:in
`call'
rack (1.2.1) lib/rack/sendfile.rb:107:in `call'
actionpack (3.0.0) lib/action_dispatch/middleware/remote_ip.rb:48:in
`call'
actionpack (3.0.0) lib/action_dispatch/middleware/show_exceptions.rb:
46:in `call'
railties (3.0.0) lib/rails/rack/logger.rb:13:in `call'
rack (1.2.1) lib/rack/runtime.rb:17:in `call'
rack (1.2.1) lib/rack/lock.rb:11:in `call'
rack (1.2.1) lib/rack/lock.rb:11:in `synchronize'
rack (1.2.1) lib/rack/lock.rb:11:in `call'
actionpack (3.0.0) lib/action_dispatch/middleware/static.rb:30:in
`call'
railties (3.0.0) lib/rails/application.rb:168:in `call'
railties (3.0.0) lib/rails/application.rb:77:in `send'
railties (3.0.0) lib/rails/application.rb:77:in `method_missing'
passenger (2.2.15) lib/phusion_passenger/rack/request_handler.rb:92:in
`process_request'
passenger (2.2.15) lib/phusion_passenger/abstract_request_handler.rb:
207:in `main_loop'
passenger (2.2.15) lib/phusion_passenger/rack/application_spawner.rb:
120:in `run'
passenger (2.2.15) lib/phusion_passenger/rack/application_spawner.rb:
65:in `spawn_application'
passenger (2.2.15) lib/phusion_passenger/utils.rb:252:in `safe_fork'
passenger (2.2.15) lib/phusion_passenger/rack/application_spawner.rb:
58:in `spawn_application'
passenger (2.2.15) lib/phusion_passenger/rack/application_spawner.rb:
41:in `spawn_application'
passenger (2.2.15) lib/phusion_passenger/spawn_manager.rb:150:in
`spawn_application'
passenger (2.2.15) lib/phusion_passenger/spawn_manager.rb:278:in
`handle_spawn_application'
passenger (2.2.15) lib/phusion_passenger/abstract_server.rb:352:in
`__send__'
passenger (2.2.15) lib/phusion_passenger/abstract_server.rb:352:in
`main_loop'
passenger (2.2.15) lib/phusion_passenger/abstract_server.rb:196:in
`start_synchronously'
passenger (2.2.15) bin/passenger-spawn-server:61

For comment.created_at.to_s(:mydate):
wrong number of arguments (1 for 0)

app/views/products/show.html.erb:64:in `to_s'
app/views/products/show.html.erb:64:in
`_app_views_products_show_html_erb___1342911154_2182214980_0'
activerecord (3.0.0) lib/active_record/associations/
association_collection.rb:430:in `method_missing'
activerecord (3.0.0) lib/active_record/associations/
association_proxy.rb:216:in `method_missing'
activerecord (3.0.0) lib/active_record/associations/
association_proxy.rb:216:in `each'
activerecord (3.0.0) lib/active_record/associations/
association_proxy.rb:216:in `send'
activerecord (3.0.0) lib/active_record/associations/
association_proxy.rb:216:in `method_missing'
activerecord (3.0.0) lib/active_record/associations/
association_collection.rb:430:in `method_missing'
app/views/products/show.html.erb:62:in
`_app_views_products_show_html_erb___1342911154_2182214980_0'
actionpack (3.0.0) lib/action_view/template.rb:135:in `send'
actionpack (3.0.0) lib/action_view/template.rb:135:in `render'
activesupport (3.0.0) lib/active_support/notifications.rb:54:in
`instrument'
actionpack (3.0.0) lib/action_view/template.rb:127:in `render'
actionpack (3.0.0) lib/action_view/render/rendering.rb:59:in
`_render_template'
activesupport (3.0.0) lib/active_support/notifications.rb:52:in
`instrument'
activesupport (3.0.0) lib/active_support/notifications/instrumenter.rb:
21:in `instrument'
activesupport (3.0.0) lib/active_support/notifications.rb:52:in
`instrument'
actionpack (3.0.0) lib/action_view/render/rendering.rb:56:in
`_render_template'
actionpack (3.0.0) lib/action_view/render/rendering.rb:26:in `render'
actionpack (3.0.0) lib/abstract_controller/rendering.rb:114:in
`_render_template'
actionpack (3.0.0) lib/abstract_controller/rendering.rb:108:in
`render_to_body'
actionpack (3.0.0) lib/action_controller/metal/renderers.rb:47:in
`render_to_body'
actionpack (3.0.0) lib/action_controller/metal/compatibility.rb:55:in
`render_to_body'
actionpack (3.0.0) lib/abstract_controller/rendering.rb:101:in
`render_to_string'
actionpack (3.0.0) lib/abstract_controller/rendering.rb:92:in `render'
actionpack (3.0.0) lib/action_controller/metal/rendering.rb:17:in
`render'
actionpack (3.0.0) lib/action_controller/metal/instrumentation.rb:
40:in `render_without_meta_tags'
activesupport (3.0.0) lib/active_support/core_ext/benchmark.rb:5:in
`ms'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/
1.8/benchmark.rb:308:in `realtime'
activesupport (3.0.0) lib/active_support/core_ext/benchmark.rb:5:in
`ms'
actionpack (3.0.0) lib/action_controller/metal/instrumentation.rb:
40:in `render_without_meta_tags'
actionpack (3.0.0) lib/action_controller/metal/instrumentation.rb:
78:in `cleanup_view_runtime'
activerecord (3.0.0) lib/active_record/railties/controller_runtime.rb:
15:in `cleanup_view_runtime'
actionpack (3.0.0) lib/action_controller/metal/instrumentation.rb:
39:in `render_without_meta_tags'
vendor/plugins/meta-tags/lib/meta_tags/controller_helper.rb:28:in
`render'
actionpack (3.0.0) lib/action_controller/metal/implicit_render.rb:
10:in `default_render'
actionpack (3.0.0) lib/action_controller/metal/mime_responds.rb:261:in
`retrieve_response_from_mimes'
actionpack (3.0.0) lib/action_controller/metal/mime_responds.rb:192:in
`call'
actionpack (3.0.0) lib/action_controller/metal/mime_responds.rb:192:in
`respond_to'
app/controllers/products_controller.rb:20:in `show'
actionpack (3.0.0) lib/action_controller/metal/implicit_render.rb:4:in
`send_action'
actionpack (3.0.0) lib/action_controller/metal/implicit_render.rb:4:in
`send_action'
actionpack (3.0.0) lib/abstract_controller/base.rb:150:in
`process_action'
actionpack (3.0.0) lib/action_controller/metal/rendering.rb:11:in
`process_action'
actionpack (3.0.0) lib/abstract_controller/callbacks.rb:18:in
`process_action'
activesupport (3.0.0) lib/active_support/callbacks.rb:440:in
`_run__1118320962__process_action__453433196__callbacks'
activesupport (3.0.0) lib/active_support/callbacks.rb:409:in `send'
activesupport (3.0.0) lib/active_support/callbacks.rb:409:in
`_run_process_action_callbacks'
activesupport (3.0.0) lib/active_support/callbacks.rb:93:in `send'
activesupport (3.0.0) lib/active_support/callbacks.rb:93:in
`run_callbacks'
actionpack (3.0.0) lib/abstract_controller/callbacks.rb:17:in
`process_action'
actionpack (3.0.0) lib/action_controller/metal/instrumentation.rb:
30:in `process_action'
activesupport (3.0.0) lib/active_support/notifications.rb:52:in
`instrument'
activesupport (3.0.0) lib/active_support/notifications/instrumenter.rb:
21:in `instrument'
activesupport (3.0.0) lib/active_support/notifications.rb:52:in
`instrument'
actionpack (3.0.0) lib/action_controller/metal/instrumentation.rb:
29:in `process_action'
actionpack (3.0.0) lib/action_controller/metal/rescue.rb:17:in
`process_action'
actionpack (3.0.0) lib/abstract_controller/base.rb:119:in `process'
actionpack (3.0.0) lib/abstract_controller/rendering.rb:40:in
`process'
actionpack (3.0.0) lib/action_controller/metal.rb:133:in `dispatch'
actionpack (3.0.0) lib/action_controller/metal/rack_delegation.rb:
14:in `dispatch'
actionpack (3.0.0) lib/action_controller/metal.rb:173:in `action'
actionpack (3.0.0) lib/action_dispatch/routing/route_set.rb:62:in
`call'
actionpack (3.0.0) lib/action_dispatch/routing/route_set.rb:62:in
`dispatch'
actionpack (3.0.0) lib/action_dispatch/routing/route_set.rb:27:in
`call'
rack-mount (0.6.13) lib/rack/mount/route_set.rb:148:in `call'
rack-mount (0.6.13) lib/rack/mount/code_generation.rb:93:in
`recognize'
rack-mount (0.6.13) lib/rack/mount/code_generation.rb:68:in
`optimized_each'
rack-mount (0.6.13) lib/rack/mount/code_generation.rb:92:in
`recognize'
rack-mount (0.6.13) lib/rack/mount/route_set.rb:139:in `call'
actionpack (3.0.0) lib/action_dispatch/routing/route_set.rb:492:in
`call'
actionpack (3.0.0) lib/action_dispatch/middleware/
best_standards_support.rb:17:in `call'
actionpack (3.0.0) lib/action_dispatch/middleware/head.rb:14:in `call'
rack (1.2.1) lib/rack/methodoverride.rb:24:in `call'
actionpack (3.0.0) lib/action_dispatch/middleware/params_parser.rb:
21:in `call'
actionpack (3.0.0) lib/action_dispatch/middleware/flash.rb:182:in
`call'
actionpack (3.0.0) lib/action_dispatch/middleware/session/
abstract_store.rb:149:in `call'
actionpack (3.0.0) lib/action_dispatch/middleware/cookies.rb:287:in
`call'
activerecord (3.0.0) lib/active_record/query_cache.rb:32:in `call'
activerecord (3.0.0) lib/active_record/connection_adapters/abstract/
query_cache.rb:28:in `cache'
activerecord (3.0.0) lib/active_record/query_cache.rb:12:in `cache'
activerecord (3.0.0) lib/active_record/query_cache.rb:31:in `call'
activerecord (3.0.0) lib/active_record/connection_adapters/abstract/
connection_pool.rb:355:in `call'
actionpack (3.0.0) lib/action_dispatch/middleware/callbacks.rb:46:in
`call'
activesupport (3.0.0) lib/active_support/callbacks.rb:415:in
`_run_call_callbacks'
actionpack (3.0.0) lib/action_dispatch/middleware/callbacks.rb:44:in
`call'
rack (1.2.1) lib/rack/sendfile.rb:107:in `call'
actionpack (3.0.0) lib/action_dispatch/middleware/remote_ip.rb:48:in
`call'
actionpack (3.0.0) lib/action_dispatch/middleware/show_exceptions.rb:
46:in `call'
railties (3.0.0) lib/rails/rack/logger.rb:13:in `call'
rack (1.2.1) lib/rack/runtime.rb:17:in `call'
rack (1.2.1) lib/rack/lock.rb:11:in `call'
rack (1.2.1) lib/rack/lock.rb:11:in `synchronize'
rack (1.2.1) lib/rack/lock.rb:11:in `call'
actionpack (3.0.0) lib/action_dispatch/middleware/static.rb:30:in
`call'
railties (3.0.0) lib/rails/application.rb:168:in `call'
railties (3.0.0) lib/rails/application.rb:77:in `send'
railties (3.0.0) lib/rails/application.rb:77:in `method_missing'
passenger (2.2.15) lib/phusion_passenger/rack/request_handler.rb:92:in
`process_request'
passenger (2.2.15) lib/phusion_passenger/abstract_request_handler.rb:
207:in `main_loop'
passenger (2.2.15) lib/phusion_passenger/rack/application_spawner.rb:
120:in `run'
passenger (2.2.15) lib/phusion_passenger/rack/application_spawner.rb:
65:in `spawn_application'
passenger (2.2.15) lib/phusion_passenger/utils.rb:252:in `safe_fork'
passenger (2.2.15) lib/phusion_passenger/rack/application_spawner.rb:
58:in `spawn_application'
passenger (2.2.15) lib/phusion_passenger/rack/application_spawner.rb:
41:in `spawn_application'
passenger (2.2.15) lib/phusion_passenger/spawn_manager.rb:150:in
`spawn_application'
passenger (2.2.15) lib/phusion_passenger/spawn_manager.rb:278:in
`handle_spawn_application'
passenger (2.2.15) lib/phusion_passenger/abstract_server.rb:352:in
`__send__'
passenger (2.2.15) lib/phusion_passenger/abstract_server.rb:352:in
`main_loop'
passenger (2.2.15) lib/phusion_passenger/abstract_server.rb:196:in
`start_synchronously'
passenger (2.2.15) bin/passenger-spawn-server:61

Hope this helps?

put this

comment.try(:created_at)

and tel me what happens

i want to see if it really is nil

so i did ut comment.try(:created_at) into the view, it outputs:
2010-09-11 03:18:46 +0200. So i think it cant be nil ...

this is weird try using i18n to format it.
copy a file from github put it in the locale folder uncomment the set locale configuration then put an L function in front of it like this

l(comment.created_at)

So i fixed it finally ! It was my fault ..what else should have
happened :frowning:
In my controller i had a @product.comments.build. So in the each he
tried to
iterate over that object also ... but it is empty.

Thanks for you help anyway!

uff , great it working