Rails 500 server error: undefined "formats" method for "index": string

I get a 500 server error in my new rails application.

The strange thing is that if you restart the rails server (I use the default webrick), the first request after rebooting will be fine. However, each subsequent request returns this error 500.

I didn’t do anything particularly interesting when it started appearing - just moving some code between the helper and the model. Any idea with which I should start looking for a solution?

Here is the error text:

Started GET "/" for 127.0.0.1 at 2013-12-27 01:18:24 -0500 Processing by MealsController#index as HTML Completed 500 Internal Server Error in 1ms NoMethodError (undefined method `formats' for "index":String): actionpack (4.0.2) lib/action_view/renderer/template_renderer.rb:11:in `render' actionpack (4.0.2) lib/action_view/renderer/renderer.rb:42:in `render_template' actionpack (4.0.2) lib/action_view/renderer/renderer.rb:23:in `render' actionpack (4.0.2) lib/abstract_controller/rendering.rb:127:in `_render_template' actionpack (4.0.2) lib/action_controller/metal/streaming.rb:219:in `_render_template' actionpack (4.0.2) lib/abstract_controller/rendering.rb:120:in `render_to_body' actionpack (4.0.2) lib/action_controller/metal/rendering.rb:33:in `render_to_body' actionpack (4.0.2) lib/action_controller/metal/renderers.rb:26:in `render_to_body' actionpack (4.0.2) lib/abstract_controller/rendering.rb:97:in `render' actionpack (4.0.2) lib/action_controller/metal/rendering.rb:16:in `render' actionpack (4.0.2) lib/action_controller/metal/instrumentation.rb:41:in `block (2 levels) in render' activesupport (4.0.2) lib/active_support/core_ext/benchmark.rb:12:in `block in ms' /usr/lib/ruby/1.9.1/benchmark.rb:295:in `realtime' activesupport (4.0.2) lib/active_support/core_ext/benchmark.rb:12:in `ms' actionpack (4.0.2) lib/action_controller/metal/instrumentation.rb:41:in `block in render' actionpack (4.0.2) lib/action_controller/metal/instrumentation.rb:84:in `cleanup_view_runtime' activerecord (4.0.2) lib/active_record/railties/controller_runtime.rb:25:in `cleanup_view_runtime' actionpack (4.0.2) lib/action_controller/metal/instrumentation.rb:40:in `render' actionpack (4.0.2) lib/action_controller/metal/implicit_render.rb:10:in `default_render' actionpack (4.0.2) lib/action_controller/metal/implicit_render.rb:5:in `send_action' actionpack (4.0.2) lib/abstract_controller/base.rb:189:in `process_action' actionpack (4.0.2) lib/action_controller/metal/rendering.rb:10:in `process_action' actionpack (4.0.2) lib/abstract_controller/callbacks.rb:18:in `block in process_action' activesupport (4.0.2) lib/active_support/callbacks.rb:403:in `_run__958396735213239085__process_action__callbacks' activesupport (4.0.2) lib/active_support/callbacks.rb:80:in `run_callbacks' actionpack (4.0.2) lib/abstract_controller/callbacks.rb:17:in `process_action' actionpack (4.0.2) lib/action_controller/metal/rescue.rb:29:in `process_action' actionpack (4.0.2) lib/action_controller/metal/instrumentation.rb:31:in `block in process_action' activesupport (4.0.2) lib/active_support/notifications.rb:159:in `block in instrument' activesupport (4.0.2) lib/active_support/notifications/instrumenter.rb:20:in `instrument' activesupport (4.0.2) lib/active_support/notifications.rb:159:in `instrument' actionpack (4.0.2) lib/action_controller/metal/instrumentation.rb:30:in `process_action' actionpack (4.0.2) lib/action_controller/metal/params_wrapper.rb:245:in `process_action' activerecord (4.0.2) lib/active_record/railties/controller_runtime.rb:18:in `process_action' actionpack (4.0.2) lib/abstract_controller/base.rb:136:in `process' actionpack (4.0.2) lib/abstract_controller/rendering.rb:44:in `process' actionpack (4.0.2) lib/action_controller/metal.rb:195:in `dispatch' actionpack (4.0.2) lib/action_controller/metal/rack_delegation.rb:13:in `dispatch' actionpack (4.0.2) lib/action_controller/metal.rb:231:in `block in action' actionpack (4.0.2) lib/action_dispatch/routing/route_set.rb:80:in `call' actionpack (4.0.2) lib/action_dispatch/routing/route_set.rb:80:in `dispatch' actionpack (4.0.2) lib/action_dispatch/routing/route_set.rb:48:in `call' actionpack (4.0.2) lib/action_dispatch/journey/router.rb:71:in `block in call' actionpack (4.0.2) lib/action_dispatch/journey/router.rb:59:in `each' actionpack (4.0.2) lib/action_dispatch/journey/router.rb:59:in `call' actionpack (4.0.2) lib/action_dispatch/routing/route_set.rb:680:in `call' rack (1.5.2) lib/rack/etag.rb:23:in `call' rack (1.5.2) lib/rack/conditionalget.rb:25:in `call' rack (1.5.2) lib/rack/head.rb:11:in `call' actionpack (4.0.2) lib/action_dispatch/middleware/params_parser.rb:27:in `call' actionpack (4.0.2) lib/action_dispatch/middleware/flash.rb:241:in `call' rack (1.5.2) lib/rack/session/abstract/id.rb:225:in `context' rack (1.5.2) lib/rack/session/abstract/id.rb:220:in `call' actionpack (4.0.2) lib/action_dispatch/middleware/cookies.rb:486:in `call' activerecord (4.0.2) lib/active_record/query_cache.rb:36:in `call' activerecord (4.0.2) lib/active_record/connection_adapters/abstract/connection_pool.rb:626:in `call' activerecord (4.0.2) lib/active_record/migration.rb:369:in `call' actionpack (4.0.2) lib/action_dispatch/middleware/callbacks.rb:29:in `block in call' activesupport (4.0.2) lib/active_support/callbacks.rb:373:in `_run__1155797797933786738__call__callbacks' activesupport (4.0.2) lib/active_support/callbacks.rb:80:in `run_callbacks' actionpack (4.0.2) lib/action_dispatch/middleware/callbacks.rb:27:in `call' actionpack (4.0.2) lib/action_dispatch/middleware/reloader.rb:64:in `call' actionpack (4.0.2) lib/action_dispatch/middleware/remote_ip.rb:76:in `call' actionpack (4.0.2) lib/action_dispatch/middleware/debug_exceptions.rb:17:in `call' actionpack (4.0.2) lib/action_dispatch/middleware/show_exceptions.rb:30:in `call' railties (4.0.2) lib/rails/rack/logger.rb:38:in `call_app' railties (4.0.2) lib/rails/rack/logger.rb:20:in `block in call' activesupport (4.0.2) lib/active_support/tagged_logging.rb:67:in `block in tagged' activesupport (4.0.2) lib/active_support/tagged_logging.rb:25:in `tagged' activesupport (4.0.2) lib/active_support/tagged_logging.rb:67:in `tagged' railties (4.0.2) lib/rails/rack/logger.rb:20:in `call' actionpack (4.0.2) lib/action_dispatch/middleware/request_id.rb:21:in `call' rack (1.5.2) lib/rack/methodoverride.rb:21:in `call' rack (1.5.2) lib/rack/runtime.rb:17:in `call' activesupport (4.0.2) lib/active_support/cache/strategy/local_cache.rb:83:in `call' rack (1.5.2) lib/rack/lock.rb:17:in `call' actionpack (4.0.2) lib/action_dispatch/middleware/static.rb:64:in `call' rack (1.5.2) lib/rack/sendfile.rb:112:in `call' railties (4.0.2) lib/rails/engine.rb:511:in `call' railties (4.0.2) lib/rails/application.rb:97:in `call' rack (1.5.2) lib/rack/lock.rb:17:in `call' rack (1.5.2) lib/rack/content_length.rb:14:in `call' rack (1.5.2) lib/rack/handler/webrick.rb:60:in `service' /usr/lib/ruby/1.9.1/webrick/httpserver.rb:138:in `service' /usr/lib/ruby/1.9.1/webrick/httpserver.rb:94:in `run' /usr/lib/ruby/1.9.1/webrick/server.rb:191:in `block in start_thread' 
+6
source share
1 answer

Ok, this post is a bit older, but I ran into the same problem and I was able to solve it. The main thing here: "I didn’t do anything particularly interesting when it started appearing - just moving some code between the helper and the model."

I'm sure you used “include something” in your model ... Make sure it looks like this:

 class ClassName include WhatEver::Base 

and not:

 include WhatEver::Base class ClassName 

Rails will download and require files for you in a certain way. In dev / test env, it will continue to reload files, however, during production, the class can be loaded into memory without reloading the file, so your included module will be there when it is loaded first, but not later.

+11
source

All Articles