Savage Beast: Custom user model methods get lost

I'm currently trying to install savage beast and it has worked well to the point that I'm able to post an read topics.

However, I've run into the following weirdness that I haven't been able to figure out:

At the Forums' index view I get the following error (trace at the bottom of my post): "Showing vendor/plugins/savage_beast/app/views/forums/index.html.erb where line #53 raised: undefined method `display_name' for #<User:0x867efa0>"

What makes it totally weird is that face that I don't get this error the first time I call this page after a fresh server start. The page loads fine first (displaying the correct display_name) but then starts to fail with this error on every call.

The line that fails is the following one: "<%= 'by {user}'[:by_user,"<strong>#{h(forum.recent_post.user.display_name)}</

"] %>"

I can change it to "forum.recent_post.user.login" or any other database field and that works. The model correctly loads the database fields and creates the methods to access them all. All methods i defined in my app/model/user.rb are gone however.

I tried "forum.recent_post.user.instance_of? User" and that oddly returns "false" ("true" right after a server reboot).

I tried this on Mongrel, WeBrick and Apache and the error is consistent on all servers. I'm running Rails 2.0.2 and ruby 1.8.6.

Any suggestions on what could be wrong?

Here's the complete trace of the error: vendor/rails/activerecord/lib/active_record/attribute_methods.rb: 205:in `method_missing' vendor/rails/activerecord/lib/active_record/associations/ association_proxy.rb:125:in `send' vendor/rails/activerecord/lib/active_record/associations/ association_proxy.rb:125:in `method_missing' vendor/plugins/savage_beast/app/views/forums/index.html.erb:53:in `_run_erb_47vendor47plugins47savage_beast47app47views47forums47index46html46erb' vendor/plugins/savage_beast/app/views/forums/index.html.erb:27:in `each' vendor/plugins/savage_beast/app/views/forums/index.html.erb:27:in `_run_erb_47vendor47plugins47savage_beast47app47views47forums47index46html46erb' vendor/rails/actionpack/lib/action_view/base.rb:637:in `send' vendor/rails/actionpack/lib/action_view/base.rb:637:in `compile_and_render_template' vendor/rails/actionpack/lib/action_view/base.rb:365:in `render_template' vendor/rails/actionpack/lib/action_view/base.rb:316:in `render_file' vendor/rails/actionpack/lib/action_controller/base.rb:1100:in `render_for_file' vendor/rails/actionpack/lib/action_controller/base.rb:858:in `render_with_no_layout' vendor/rails/actionpack/lib/action_controller/base.rb:872:in `render_with_no_layout' vendor/rails/actionpack/lib/action_controller/layout.rb:262:in `render_without_benchmark' vendor/rails/actionpack/lib/action_controller/benchmarking.rb:51:in `render' C:/ruby/lib/ruby/1.8/benchmark.rb:293:in `measure' vendor/rails/actionpack/lib/action_controller/benchmarking.rb:51:in `render' vendor/rails/actionpack/lib/action_controller/mime_responds.rb:131:in `send' vendor/rails/actionpack/lib/action_controller/mime_responds.rb:131:in `custom' vendor/rails/actionpack/lib/action_controller/mime_responds.rb:156:in `call' vendor/rails/actionpack/lib/action_controller/mime_responds.rb:156:in `respond' vendor/rails/actionpack/lib/action_controller/mime_responds.rb:150:in `each' vendor/rails/actionpack/lib/action_controller/mime_responds.rb:150:in `respond' vendor/rails/actionpack/lib/action_controller/mime_responds.rb:107:in `respond_to' vendor/plugins/savage_beast/app/controllers/forums_controller.rb:12:in `index' vendor/rails/actionpack/lib/action_controller/base.rb:1158:in `send' vendor/rails/actionpack/lib/action_controller/base.rb:1158:in `perform_action_without_filters' vendor/rails/actionpack/lib/action_controller/filters.rb:697:in `call_filters' vendor/rails/actionpack/lib/action_controller/filters.rb:689:in `perform_action_without_benchmark' vendor/rails/actionpack/lib/action_controller/benchmarking.rb:68:in `perform_action_without_rescue' C:/ruby/lib/ruby/1.8/benchmark.rb:293:in `measure' vendor/rails/actionpack/lib/action_controller/benchmarking.rb:68:in `perform_action_without_rescue' vendor/rails/actionpack/lib/action_controller/rescue.rb:199:in `perform_action_without_caching' vendor/rails/actionpack/lib/action_controller/caching.rb:678:in `perform_action' vendor/rails/activerecord/lib/active_record/connection_adapters/ abstract/query_cache.rb:33:in `cache' vendor/rails/activerecord/lib/active_record/query_cache.rb:8:in `cache' vendor/rails/actionpack/lib/action_controller/caching.rb:677:in `perform_action' vendor/rails/actionpack/lib/action_controller/base.rb:524:in `send' vendor/rails/actionpack/lib/action_controller/base.rb:524:in `process_without_filters' vendor/rails/actionpack/lib/action_controller/filters.rb:685:in `process_without_session_management_support' vendor/rails/actionpack/lib/action_controller/session_management.rb: 123:in `process' vendor/rails/actionpack/lib/action_controller/base.rb:388:in `process' vendor/rails/actionpack/lib/action_controller/dispatcher.rb:171:in `handle_request' vendor/rails/actionpack/lib/action_controller/dispatcher.rb:115:in `dispatch' vendor/rails/actionpack/lib/action_controller/dispatcher.rb:126:in `dispatch_cgi' vendor/rails/actionpack/lib/action_controller/dispatcher.rb:9:in `dispatch' vendor/rails/railties/lib/fcgi_handler.rb:101:in `process_request' vendor/rails/railties/lib/fcgi_handler.rb:149:in `with_signal_handler' vendor/rails/railties/lib/fcgi_handler.rb:99:in `process_request' vendor/rails/railties/lib/fcgi_handler.rb:77:in `process_each_request' C:/ruby/lib/ruby/site_ruby/1.8/fcgi.rb:612:in `each_cgi' C:/ruby/lib/ruby/site_ruby/1.8/fcgi.rb:609:in `each' C:/ruby/lib/ruby/site_ruby/1.8/fcgi.rb:609:in `each_cgi' vendor/rails/railties/lib/fcgi_handler.rb:76:in `process_each_request' vendor/rails/railties/lib/fcgi_handler.rb:50:in `process!' vendor/rails/railties/lib/fcgi_handler.rb:24:in `process!' public/dispatch.fcgi:24

Adrian -

I'm currently trying to install savage beast and it has worked well to the point that I'm able to post an read topics.

However, I've run into the following weirdness that I haven't been able to figure out:

At the Forums' index view I get the following error (trace at the bottom of my post): "Showing vendor/plugins/savage_beast/app/views/forums/index.html.erb where line #53 raised: undefined method `display_name' for #<User:0x867efa0>"

What makes it totally weird is that face that I don't get this error the first time I call this page after a fresh server start. The page loads fine first (displaying the correct display_name) but then starts to fail with this error on every call.

this 'feels' like a model reloading issue.

I haven't ported savage beast to rails 2.02 or the latest engines plugin - there's likely something going on.

I would head over the the engine's list and ask James about the behavior you're seeing. If you do come to a solution, I can roll the change in.

cheers, Jodi

Thanks a lot, that got me on the right track!

I'm still not sure what's going on and I currently don't have the time to look into it further. It seems to be related to a known engines problem where models don't get reloaded.

It only affects development mode and I was able to fix it by adding following lines to savage beast's init.rb: