askegg
2006-Dec-20 00:01 UTC
undefined method `fullname'' for #<User:0x357e380>, BUT works on first view?
Hi all, Please excuse the long post, but I wanted to make sure you have all the information.... I have a NewsModel that looks like this: class News < ActiveRecord::Base belongs_to :user validates_associated :user validates_length_of :title, :description, :minimum => 5, :allow_nil => false acts_as_commentable acts_as_taggable def self.find_recent News.find(:all, :order => ''created_at'', :limit => 10).reverse end end and a controller like this: class NewsController < ApplicationController def show begin @news = News.find(params[:id]) rescue ActiveRecord::RecordNotFound flash[:notice] = "News item not found!" redirect_to :action => ''index'' and return else @comments = @news.comments end end end and finally the view: --Show <div id="news"> <%= render :partial => ''/news/item'', :locals => { :item => @news } %> <%= render :partial => ''/comments/comment'', :collection => @comments %> <%= render :partial => ''/comments/form'' %> </div> --/comments/comment <div class="comment"> <h2>Comments</h2> <div class="comment_title"> <%= comment.title -%> </div> <div class="comment.text"> <%= h comment.comment -%> </div> <div class="comment_author"> <%= comment.user.fullname -%> <%time_ago_in_words(comment.created_at) -%> ago </div> <hr> </div> As you can see, the comments partial calls comment.user.fullname, which is defined in the UserModel: class User < ActiveRecord::Base has_many :documents has_many :events has_many :news has_many :comments def fullname "#{firstname} #{surname}" end end When the server is first started the page renders correctly, HOWEVER if I hit refresh it fails with: undefined method `fullname'' for #<User:0x357e380> Extracted source (around line #10): 7: <%= h comment.comment -%> 8: </div> 9: <div class="comment_author"> 10: <%= comment.user.fullname -%> <%time_ago_in_words(comment.created_at) -%> ago 11: </div> 12: <hr> 13: </div> Restarting the server fixes the issue for 1 view, then all subsequent views fail. Here is the console log: Andrews-MacBook:~/Sites/tassia andrewskegg$ ./script/server => Booting Mongrel (use ''script/server webrick'' to force WEBrick) => Rails application starting on http://0.0.0.0:3000 => Call with -d to detach => Ctrl-C to shutdown server ** Starting Mongrel listening at 0.0.0.0:3000 ** Starting Rails with development environment... ** Rails loaded. ** Loading any Rails specific GemPlugins ** Signals ready. TERM => stop. USR2 => restart. INT => stop (no restart). ** Rails signals registered. HUP => reload (without restart). It might not work well. ** Mongrel available at 0.0.0.0:3000 ** Use CTRL-C to stop. Processing NewsController#show (for 127.0.0.1 at 2006-12-20 10:49:28) [GET] Session ID: ea9a336b5b4d1bee4d647d25de2a27e7 Parameters: {"action"=>"show", "id"=>"13", "controller"=>"news"} News Columns (0.000266) SHOW FIELDS FROM news News Load (0.000302) SELECT * FROM news WHERE (news.id = 13) Rendering within layouts/application Rendering news/show Tagging Columns (0.000286) SHOW FIELDS FROM taggings Tag Load (0.000444) SELECT tags.* FROM tags INNER JOIN taggings ON tags.id = taggings.tag_id WHERE ((taggings.taggable_type = ''News'') AND (taggings.taggable_id = 13)) Tag Columns (0.000187) SHOW FIELDS FROM tags Rendered /news/_item (0.00561) Comment Load (0.000301) SELECT * FROM comments WHERE (comments.commentable_id = 13 AND comments.commentable_type = ''News'') Comment Columns (0.000248) SHOW FIELDS FROM comments User Columns (0.000345) SHOW FIELDS FROM users User Load (0.000359) SELECT * FROM users WHERE (users.id = 1) Rendered /comments/_comment (0.01381) Rendered /comments/_form (0.00201) Completed in 0.04776 (20 reqs/sec) | Rendering: 0.02942 (61%) | DB: 0.00274 (5%) | 200 OK [http://localhost/news/show/13] Processing NewsController#show (for 127.0.0.1 at 2006-12-20 10:49:32) [GET] Session ID: ea9a336b5b4d1bee4d647d25de2a27e7 Parameters: {"action"=>"show", "id"=>"13", "controller"=>"news"} News Columns (0.000273) SHOW FIELDS FROM news News Load (0.000314) SELECT * FROM news WHERE (news.id = 13) Rendering within layouts/application Rendering news/show Tag Load (0.000489) SELECT tags.* FROM tags INNER JOIN taggings ON tags.id = taggings.tag_id WHERE ((taggings.taggable_type = ''News'') AND (taggings.taggable_id = 13)) Rendered /news/_item (0.00340) Comment Load (0.000447) SELECT * FROM comments WHERE (comments.commentable_id = 13 AND comments.commentable_type = ''News'') User Columns (0.000271) SHOW FIELDS FROM users User Load (0.000356) SELECT * FROM users WHERE (users.id = 1) ActionView::TemplateError (undefined method `fullname'' for #<User:0x357e380>) on line #10 of app/views/comments/_comment.rhtml: 7: <%= h comment.comment -%> 8: </div> 9: <div class="comment_author"> 10: <%= comment.user.fullname -%> <%time_ago_in_words(comment.created_at) -%> ago 11: </div> 12: <hr> 13: </div> /usr/local/lib/ruby/gems/1.8/gems/activerecord-1.14.4.5618/lib/active_recor d/base.rb:1848:in `method_missing'' /usr/local/lib/ruby/gems/1.8/gems/activerecord-1.14.4.5618/lib/active_recor d/associations/association_proxy.rb:123:in `send'' /usr/local/lib/ruby/gems/1.8/gems/activerecord-1.14.4.5618/lib/active_recor d/associations/association_proxy.rb:123:in `method_missing'' #{RAILS_ROOT}/app/views//comments/_comment.rhtml:10:in `_run_rhtml_47app47views47comments47_comment46rhtml'' /usr/local/lib/ruby/gems/1.8/gems/actionpack-1.12.5.5618/lib/action_view/ba se.rb:326:in `send'' /usr/local/lib/ruby/gems/1.8/gems/actionpack-1.12.5.5618/lib/action_view/ba se.rb:326:in `compile_and_render_template'' /usr/local/lib/ruby/gems/1.8/gems/actionpack-1.12.5.5618/lib/action_view/ba se.rb:301:in `render_template'' /usr/local/lib/ruby/gems/1.8/gems/actionpack-1.12.5.5618/lib/action_view/ba se.rb:260:in `render_file'' /usr/local/lib/ruby/gems/1.8/gems/actionpack-1.12.5.5618/lib/action_view/ba se.rb:275:in `render'' /usr/local/lib/ruby/gems/1.8/gems/actionpack-1.12.5.5618/lib/action_view/pa rtials.rb:59:in `render_partial'' /usr/local/lib/ruby/gems/1.8/gems/actionpack-1.12.5.5618/lib/action_control ler/benchmarking.rb:26:in `benchmark'' /usr/local/lib/ruby/1.8/benchmark.rb:293:in `measure'' /usr/local/lib/ruby/1.8/benchmark.rb:307:in `realtime'' /usr/local/lib/ruby/gems/1.8/gems/actionpack-1.12.5.5618/lib/action_control ler/benchmarking.rb:26:in `benchmark'' /usr/local/lib/ruby/gems/1.8/gems/actionpack-1.12.5.5618/lib/action_view/pa rtials.rb:58:in `render_partial'' /usr/local/lib/ruby/gems/1.8/gems/actionpack-1.12.5.5618/lib/action_view/pa rtials.rb:73:in `render_partial_collection'' /usr/local/lib/ruby/gems/1.8/gems/activerecord-1.14.4.5618/lib/active_recor d/base.rb:1361:in `each_with_index'' /usr/local/lib/ruby/gems/1.8/gems/activerecord-1.14.4.5618/lib/active_recor d/associations/association_proxy.rb:123:in `each'' /usr/local/lib/ruby/gems/1.8/gems/activerecord-1.14.4.5618/lib/active_recor d/associations/association_proxy.rb:123:in `each_with_index'' /usr/local/lib/ruby/gems/1.8/gems/activerecord-1.14.4.5618/lib/active_recor d/associations/association_proxy.rb:123:in `send'' /usr/local/lib/ruby/gems/1.8/gems/activerecord-1.14.4.5618/lib/active_recor d/associations/association_proxy.rb:123:in `method_missing'' /usr/local/lib/ruby/gems/1.8/gems/activerecord-1.14.4.5618/lib/active_recor d/associations/has_many_association.rb:98:in `method_missing'' /usr/local/lib/ruby/gems/1.8/gems/actionpack-1.12.5.5618/lib/action_view/pa rtials.rb:71:in `render_partial_collection'' /usr/local/lib/ruby/gems/1.8/gems/actionpack-1.12.5.5618/lib/action_view/ba se.rb:285:in `render'' #{RAILS_ROOT}/app/views/news/show.rhtml:4:in `_run_rhtml_47app47views47news47show46rhtml'' /usr/local/lib/ruby/gems/1.8/gems/actionpack-1.12.5.5618/lib/action_view/ba se.rb:326:in `send'' /usr/local/lib/ruby/gems/1.8/gems/actionpack-1.12.5.5618/lib/action_view/ba se.rb:326:in `compile_and_render_template'' /usr/local/lib/ruby/gems/1.8/gems/actionpack-1.12.5.5618/lib/action_view/ba se.rb:301:in `render_template'' /usr/local/lib/ruby/gems/1.8/gems/actionpack-1.12.5.5618/lib/action_view/ba se.rb:260:in `render_file'' /usr/local/lib/ruby/gems/1.8/gems/actionpack-1.12.5.5618/lib/action_control ler/base.rb:786:in `render_file'' /usr/local/lib/ruby/gems/1.8/gems/actionpack-1.12.5.5618/lib/action_control ler/base.rb:694:in `render_with_no_layout'' /usr/local/lib/ruby/gems/1.8/gems/actionpack-1.12.5.5618/lib/action_control ler/layout.rb:247:in `render_without_benchmark'' /usr/local/lib/ruby/gems/1.8/gems/actionpack-1.12.5.5618/lib/action_control ler/benchmarking.rb:50:in `render'' /usr/local/lib/ruby/1.8/benchmark.rb:293:in `measure'' /usr/local/lib/ruby/gems/1.8/gems/actionpack-1.12.5.5618/lib/action_control ler/benchmarking.rb:50:in `render'' /usr/local/lib/ruby/gems/1.8/gems/actionpack-1.12.5.5618/lib/action_control ler/base.rb:1069:in `perform_action_without_filters'' /usr/local/lib/ruby/gems/1.8/gems/actionpack-1.12.5.5618/lib/action_control ler/filters.rb:635:in `call_filter'' /usr/local/lib/ruby/gems/1.8/gems/actionpack-1.12.5.5618/lib/action_control ler/filters.rb:622:in `perform_action_without_benchmark'' /usr/local/lib/ruby/gems/1.8/gems/actionpack-1.12.5.5618/lib/action_control ler/benchmarking.rb:66:in `perform_action_without_rescue'' /usr/local/lib/ruby/1.8/benchmark.rb:293:in `measure'' /usr/local/lib/ruby/gems/1.8/gems/actionpack-1.12.5.5618/lib/action_control ler/benchmarking.rb:66:in `perform_action_without_rescue'' /usr/local/lib/ruby/gems/1.8/gems/actionpack-1.12.5.5618/lib/action_control ler/rescue.rb:81:in `perform_action'' /usr/local/lib/ruby/gems/1.8/gems/actionpack-1.12.5.5618/lib/action_control ler/base.rb:427:in `send'' /usr/local/lib/ruby/gems/1.8/gems/actionpack-1.12.5.5618/lib/action_control ler/base.rb:427:in `process_without_filters'' /usr/local/lib/ruby/gems/1.8/gems/actionpack-1.12.5.5618/lib/action_control ler/filters.rb:627:in `process_without_session_management_support'' /usr/local/lib/ruby/gems/1.8/gems/actionpack-1.12.5.5618/lib/action_control ler/session_management.rb:114:in `process'' /usr/local/lib/ruby/gems/1.8/gems/actionpack-1.12.5.5618/lib/action_control ler/base.rb:330:in `process'' /usr/local/lib/ruby/gems/1.8/gems/rails-1.1.6.5618/lib/dispatcher.rb:41:in `dispatch'' /usr/local/lib/ruby/gems/1.8/gems/mongrel-0.3.13.4/lib/mongrel/rails.rb:84: in `process'' /usr/local/lib/ruby/1.8/sync.rb:229:in `synchronize'' /usr/local/lib/ruby/gems/1.8/gems/mongrel-0.3.13.4/lib/mongrel/rails.rb:83: in `process'' /usr/local/lib/ruby/gems/1.8/gems/mongrel-0.3.13.4/lib/mongrel.rb:580:in `process_client'' /usr/local/lib/ruby/gems/1.8/gems/mongrel-0.3.13.4/lib/mongrel.rb:579:in `each'' /usr/local/lib/ruby/gems/1.8/gems/mongrel-0.3.13.4/lib/mongrel.rb:579:in `process_client'' /usr/local/lib/ruby/gems/1.8/gems/mongrel-0.3.13.4/lib/mongrel.rb:686:in `run'' /usr/local/lib/ruby/gems/1.8/gems/mongrel-0.3.13.4/lib/mongrel.rb:686:in `initialize'' /usr/local/lib/ruby/gems/1.8/gems/mongrel-0.3.13.4/lib/mongrel.rb:686:in `new'' /usr/local/lib/ruby/gems/1.8/gems/mongrel-0.3.13.4/lib/mongrel.rb:686:in `run'' /usr/local/lib/ruby/gems/1.8/gems/mongrel-0.3.13.4/lib/mongrel.rb:673:in `initialize'' /usr/local/lib/ruby/gems/1.8/gems/mongrel-0.3.13.4/lib/mongrel.rb:673:in `new'' /usr/local/lib/ruby/gems/1.8/gems/mongrel-0.3.13.4/lib/mongrel.rb:673:in `run'' /usr/local/lib/ruby/gems/1.8/gems/mongrel-0.3.13.4/lib/mongrel/configurator .rb:267:in `run'' /usr/local/lib/ruby/gems/1.8/gems/mongrel-0.3.13.4/lib/mongrel/configurator .rb:266:in `each'' /usr/local/lib/ruby/gems/1.8/gems/mongrel-0.3.13.4/lib/mongrel/configurator .rb:266:in `run'' /usr/local/lib/ruby/gems/1.8/gems/mongrel-0.3.13.4/bin/mongrel_rails:127:in `run'' /usr/local/lib/ruby/gems/1.8/gems/mongrel-0.3.13.4/lib/mongrel/command.rb:2 11:in `run'' /usr/local/lib/ruby/gems/1.8/gems/mongrel-0.3.13.4/bin/mongrel_rails:231 /usr/local/lib/ruby/gems/1.8/gems/activesupport-1.3.1.5618/lib/active_suppo rt/dependencies.rb:482:in `load'' /usr/local/lib/ruby/gems/1.8/gems/activesupport-1.3.1.5618/lib/active_suppo rt/dependencies.rb:482:in `load'' /usr/local/lib/ruby/gems/1.8/gems/activesupport-1.3.1.5618/lib/active_suppo rt/dependencies.rb:337:in `new_constants_in'' /usr/local/lib/ruby/gems/1.8/gems/activesupport-1.3.1.5618/lib/active_suppo rt/dependencies.rb:482:in `load'' /usr/local/lib/ruby/gems/1.8/gems/rails-1.1.6.5618/lib/commands/servers/mon grel.rb:52 /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `gem_original_require'' /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `require'' /usr/local/lib/ruby/gems/1.8/gems/activesupport-1.3.1.5618/lib/active_suppo rt/dependencies.rb:489:in `require'' /usr/local/lib/ruby/gems/1.8/gems/activesupport-1.3.1.5618/lib/active_suppo rt/dependencies.rb:337:in `new_constants_in'' /usr/local/lib/ruby/gems/1.8/gems/activesupport-1.3.1.5618/lib/active_suppo rt/dependencies.rb:489:in `require'' /usr/local/lib/ruby/gems/1.8/gems/rails-1.1.6.5618/lib/commands/server.rb:3 9 /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `gem_original_require'' /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `require'' /usr/local/lib/ruby/gems/1.8/gems/activesupport-1.3.1.5618/lib/active_suppo rt/dependencies.rb:489:in `require'' /usr/local/lib/ruby/gems/1.8/gems/activesupport-1.3.1.5618/lib/active_suppo rt/dependencies.rb:337:in `new_constants_in'' /usr/local/lib/ruby/gems/1.8/gems/activesupport-1.3.1.5618/lib/active_suppo rt/dependencies.rb:489:in `require'' script/server:3 Rendering /usr/local/lib/ruby/gems/1.8/gems/actionpack-1.12.5.5618/lib/action_control ler/templates/rescues/layout.rhtml (500 Internal Error) Any ideas? --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Alex Wayne
2006-Dec-20 01:25 UTC
Re: undefined method `fullname'' for #<User:0x357e380>, BUT w
Your user model may be getting unloaded. Are you sure your User class is defined in app/models/user.rb? If the filename is different rails may to reload it properly in development mode. -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
askegg
2006-Dec-20 02:18 UTC
Re: undefined method `fullname'' for #<User:0x357e380>, BUT w
Thanks for the reply. I have had a play around with the filenames and thought I was onto something, but the computer says no. The file is app/models/user.rb and contains: class User < ActiveRecord::Base has_many :documents has_many :events has_many :news has_many :comments def fullname "#{firstname} #{surname}" end end I am using Rails 1.2 RC1 (ie 1.1.6) in development mode on my mac. Interestingly, I am getting what looks like the results of "rake db:test" whenever I run a rake command, including "./scripts/about". I wonder if this is related? On Dec 20, 12:25 pm, Alex Wayne <rails-mailing-l...-ARtvInVfO7ksV2N9l4h3zg@public.gmane.org> wrote:> Your user model may be getting unloaded. Are you sure your User class > is defined in app/models/user.rb? > > If the filename is different rails may to reload it properly in > development mode. > > -- > Posted viahttp://www.ruby-forum.com/.--~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
askegg
2006-Dec-20 04:35 UTC
Re: undefined method `fullname'' for #<User:0x357e380>, BUT w
Thanks for the reply. I have had a play around with the filenames and thought I was onto something, but the computer says no. The file is app/models/user.rb and contains: class User < ActiveRecord::Base has_many :documents has_many :events has_many :news has_many :comments def fullname "#{firstname} #{surname}" end end I am using Rails 1.2 RC1 (ie 1.1.6) in development mode on my mac. Interestingly, I am getting what looks like the results of "rake db:test" whenever I run a rake command, including "./scripts/about". I wonder if this is related? Alex Wayne wrote:> Your user model may be getting unloaded. Are you sure your User class > is defined in app/models/user.rb? > > If the filename is different rails may to reload it properly in > development mode.-- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
askegg
2006-Dec-20 09:32 UTC
Re: undefined method `fullname'' for #<User:0x357e380>, BUT w
Hi Everyone, Whatever the problem was, it has been fixed since RC1. I just upgraded to edge rails and everything works perfectly. -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---