Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

I'm getting a 500 server error in my new rails app.

The weird thing is that if you restart the rails server (I'm using the default webrick), the first request after reload is perfectly fine. Every subsequent request, however, returns this 500 error.

I wasn't doing anything particularly interesting when it started popping up -- just moving some code around between a helper and model. Any idea where I should start looking to solve this?

Here is the text of the error:

    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'
like image 520
Herb Susmann Avatar asked Dec 27 '13 06:12

Herb Susmann


1 Answers

Ok, this post is a little older, but I encountered just the same problem and I was able to solve it. The key thing here is: "I wasn't doing anything particularly interesting when it started popping up -- just moving some code around between a helper and model."

I bet 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 load and require files for you in a certain way. In dev/test env it will keep reloading files, however in production, the class may end up being loaded in memory, without reloading the file, so your included module will be there when first loaded but not afterwards.

like image 50
Ninigi Avatar answered Oct 21 '22 22:10

Ninigi