user2482038
user2482038

Reputation: 59

Rails NameError in StaticPagesController#messages?

New to Ruby on rails and I just got this error and can't figure out where I went wrong.

if it helps the messages model follows the same design as micropost in the rails tutorial book by Michael Hartl.

error reads

uninitialized constant Message::UserId

Trace

activerecord (4.2.2) lib/active_record/inheritance.rb:158:in `compute_type'
activerecord (4.2.2) lib/active_record/reflection.rb:271:in `compute_class'
activerecord (4.2.2) lib/active_record/reflection.rb:267:in `klass'
activerecord (4.2.2) lib/active_record/associations/association.rb:214:in `raise_on_type_mismatch!'
activerecord (4.2.2) lib/active_record/associations/belongs_to_association.rb:12:in `replace'
activerecord (4.2.2) lib/active_record/associations/singular_association.rb:17:in `writer'
activerecord (4.2.2) lib/active_record/associations/builder/association.rb:123:in `user_id='
activerecord (4.2.2) lib/active_record/attribute_assignment.rb:54:in `public_send'
activerecord (4.2.2) lib/active_record/attribute_assignment.rb:54:in `_assign_attribute'
activerecord (4.2.2) lib/active_record/attribute_assignment.rb:41:in `block in assign_attributes'
activerecord (4.2.2) lib/active_record/attribute_assignment.rb:35:in `each'
activerecord (4.2.2) lib/active_record/attribute_assignment.rb:35:in `assign_attributes'
activerecord (4.2.2) lib/active_record/associations/association.rb:169:in `initialize_attributes'
activerecord (4.2.2) lib/active_record/associations/association.rb:248:in `block in build_record'
activerecord (4.2.2) lib/active_record/core.rb:283:in `initialize'
activerecord (4.2.2) lib/active_record/inheritance.rb:61:in `new'
activerecord (4.2.2) lib/active_record/inheritance.rb:61:in `new'
activerecord (4.2.2) lib/active_record/reflection.rb:131:in `build_association'
activerecord (4.2.2) lib/active_record/associations/association.rb:247:in `build_record'
activerecord (4.2.2) lib/active_record/associations/collection_association.rb:146:in `build'
activerecord (4.2.2) lib/active_record/associations/collection_proxy.rb:259:in `build'
actionpack (4.2.2) lib/action_controller/metal/implicit_render.rb:4:in `send_action'
actionpack (4.2.2) lib/abstract_controller/base.rb:198:in `process_action'
actionpack (4.2.2) lib/action_controller/metal/rendering.rb:10:in `process_action'
actionpack (4.2.2) lib/abstract_controller/callbacks.rb:20:in `block in process_action'
activesupport (4.2.2) lib/active_support/callbacks.rb:117:in `call'
activesupport (4.2.2) lib/active_support/callbacks.rb:117:in `call'
activesupport (4.2.2) lib/active_support/callbacks.rb:555:in `block (2 levels) in compile'
activesupport (4.2.2) lib/active_support/callbacks.rb:505:in `call'
activesupport (4.2.2) lib/active_support/callbacks.rb:505:in `call'
activesupport (4.2.2) lib/active_support/callbacks.rb:92:in `_run_callbacks'
activesupport (4.2.2) lib/active_support/callbacks.rb:776:in `_run_process_action_callbacks'
activesupport (4.2.2) lib/active_support/callbacks.rb:81:in `run_callbacks'
actionpack (4.2.2) lib/abstract_controller/callbacks.rb:19:in `process_action'
actionpack (4.2.2) lib/action_controller/metal/rescue.rb:29:in `process_action'
actionpack (4.2.2) lib/action_controller/metal/instrumentation.rb:32:in `block in process_action'
activesupport (4.2.2) lib/active_support/notifications.rb:164:in `block in instrument'
activesupport (4.2.2) lib/active_support/notifications/instrumenter.rb:20:in `instrument'
activesupport (4.2.2) lib/active_support/notifications.rb:164:in `instrument'
actionpack (4.2.2) lib/action_controller/metal/instrumentation.rb:30:in `process_action'
actionpack (4.2.2) lib/action_controller/metal/params_wrapper.rb:250:in `process_action'
activerecord (4.2.2) lib/active_record/railties/controller_runtime.rb:18:in `process_action'
actionpack (4.2.2) lib/abstract_controller/base.rb:137:in `process'
actionview (4.2.2) lib/action_view/rendering.rb:30:in `process'
actionpack (4.2.2) lib/action_controller/metal.rb:196:in `dispatch'
actionpack (4.2.2) lib/action_controller/metal/rack_delegation.rb:13:in `dispatch'
actionpack (4.2.2) lib/action_controller/metal.rb:237:in `block in action'
actionpack (4.2.2) lib/action_dispatch/routing/route_set.rb:74:in `call'
actionpack (4.2.2) lib/action_dispatch/routing/route_set.rb:74:in `dispatch'
actionpack (4.2.2) lib/action_dispatch/routing/route_set.rb:43:in `serve'
actionpack (4.2.2) lib/action_dispatch/journey/router.rb:43:in `block in serve'
actionpack (4.2.2) lib/action_dispatch/journey/router.rb:30:in `each'
actionpack (4.2.2) lib/action_dispatch/journey/router.rb:30:in `serve'
actionpack (4.2.2) lib/action_dispatch/routing/route_set.rb:819:in `call'
rack (1.6.4) lib/rack/etag.rb:24:in `call'
rack (1.6.4) lib/rack/conditionalget.rb:25:in `call'
rack (1.6.4) lib/rack/head.rb:13:in `call'
actionpack (4.2.2) lib/action_dispatch/middleware/params_parser.rb:27:in `call'
actionpack (4.2.2) lib/action_dispatch/middleware/flash.rb:260:in `call'
rack (1.6.4) lib/rack/session/abstract/id.rb:225:in `context'
rack (1.6.4) lib/rack/session/abstract/id.rb:220:in `call'
actionpack (4.2.2) lib/action_dispatch/middleware/cookies.rb:560:in `call'
activerecord (4.2.2) lib/active_record/query_cache.rb:36:in `call'
activerecord (4.2.2) lib/active_record/connection_adapters/abstract/connection_pool.rb:649:in `call'
activerecord (4.2.2) lib/active_record/migration.rb:378:in `call'
actionpack (4.2.2) lib/action_dispatch/middleware/callbacks.rb:29:in `block in call'
activesupport (4.2.2) lib/active_support/callbacks.rb:88:in `call'
activesupport (4.2.2) lib/active_support/callbacks.rb:88:in `_run_callbacks'
activesupport (4.2.2) lib/active_support/callbacks.rb:776:in `_run_call_callbacks'
activesupport (4.2.2) lib/active_support/callbacks.rb:81:in `run_callbacks'
actionpack (4.2.2) lib/action_dispatch/middleware/callbacks.rb:27:in `call'
actionpack (4.2.2) lib/action_dispatch/middleware/reloader.rb:73:in `call'
actionpack (4.2.2) lib/action_dispatch/middleware/remote_ip.rb:78:in `call'
actionpack (4.2.2) lib/action_dispatch/middleware/debug_exceptions.rb:17:in `call'
actionpack (4.2.2) lib/action_dispatch/middleware/show_exceptions.rb:30:in `call'
railties (4.2.2) lib/rails/rack/logger.rb:38:in `call_app'
railties (4.2.2) lib/rails/rack/logger.rb:20:in `block in call'
activesupport (4.2.2) lib/active_support/tagged_logging.rb:68:in `block in tagged'
activesupport (4.2.2) lib/active_support/tagged_logging.rb:26:in `tagged'
activesupport (4.2.2) lib/active_support/tagged_logging.rb:68:in `tagged'
railties (4.2.2) lib/rails/rack/logger.rb:20:in `call'
actionpack (4.2.2) lib/action_dispatch/middleware/request_id.rb:21:in `call'
rack (1.6.4) lib/rack/methodoverride.rb:22:in `call'
rack (1.6.4) lib/rack/runtime.rb:18:in `call'
activesupport (4.2.2) lib/active_support/cache/strategy/local_cache_middleware.rb:28:in `call'
rack (1.6.4) lib/rack/lock.rb:17:in `call'
actionpack (4.2.2) lib/action_dispatch/middleware/static.rb:113:in `call'
rack (1.6.4) lib/rack/sendfile.rb:113:in `call'
railties (4.2.2) lib/rails/engine.rb:518:in `call'
railties (4.2.2) lib/rails/application.rb:164:in `call'
rack (1.6.4) lib/rack/lock.rb:17:in `call'
rack (1.6.4) lib/rack/content_length.rb:15:in `call'
rack (1.6.4) lib/rack/handler/webrick.rb:88:in `service'
C:/RailsInstaller/Ruby2.0.0/lib/ruby/2.0.0/webrick/httpserver.rb:138:in `service'
C:/RailsInstaller/Ruby2.0.0/lib/ruby/2.0.0/webrick/httpserver.rb:94:in `run'
C:/RailsInstaller/Ruby2.0.0/lib/ruby/2.0.0/webrick/server.rb:295:in `block in start_thread'

Upvotes: 0

Views: 56

Answers (1)

Jorge de los Santos
Jorge de los Santos

Reputation: 4633

You seem to be calling an associated model that is not defined user.messages

In order to make it work you need to define the association in both models.

class User < ActiveRecord::Base
   has_many :messages
end

class Messages < ActiveRecord::Base
   belongs_to :user
end

Upvotes: 3

Related Questions