Hi, My system has been encounter this problem, and I couldn''t find solution after debugging. My scenario is stated below: class user has_many :posts has_many :comments end class post belongs_to :user has_many :comments, :as => :commentable end class comment belongs_to :post belongs_to :user end For this case, I am trying to retrieve each post''s comment together with submitter username and I write as below: class PostsController<ApplicationController def show raise @post.comments.first.user.inspect end end While the first time I run this script, it works fine. But, after I hitting a refresh, it hits following problem "can''t dup NilClass". It is repeats the same for everytime i restart mongrel, working for the first time and failed for the rest. I append the application error log as below: /opt/local/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/ base.rb:2189:in `dup'' /opt/local/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/ base.rb:2189:in `scoped_methods'' /opt/local/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/ base.rb:2193:in `current_scoped_methods'' /opt/local/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/ base.rb:2183:in `scope'' /opt/local/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/ base.rb:1548:in `find_every'' /opt/local/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/ base.rb:1588:in `find_one'' /opt/local/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/ base.rb:1574:in `find_from_ids'' /opt/local/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/ base.rb:616:in `find'' /opt/local/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/ associations/belongs_to_association.rb:44:in `find_target'' /opt/local/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/ associations/association_proxy.rb:240:in `load_target'' /opt/local/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/ associations/association_proxy.rb:112:in `reload'' /opt/local/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/ associations.rb:1231:in `user'' Need some help for this. Thanks in advance.
I''ve such problem. First time it works fine. But next time it gets error "can''t dup NilClass" On Jul 20, 11:25 pm, tonymocha <mochat...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> Hi, > > My system has been encounter this problem, and I couldn''t find > solution after debugging. My scenario is stated below: > > class user > has_many :posts > has_many :comments > end > > class post > belongs_to :user > has_many :comments, :as => :commentable > end > > class comment > belongs_to :post > belongs_to :user > end > > For this case, I am trying to retrieve each post''s comment together > with submitter username and I write as below: > > class PostsController<ApplicationController > def show > raise @post.comments.first.user.inspect > end > end > > While the first time I run this script, it works fine. But, after I > hitting a refresh, it hits following problem "can''t dup NilClass". It > is repeats the same for everytime i restart mongrel, working for the > first time and failed for the rest. > > I append the application error log as below: > /opt/local/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/ > base.rb:2189:in `dup'' > /opt/local/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/ > base.rb:2189:in `scoped_methods'' > /opt/local/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/ > base.rb:2193:in `current_scoped_methods'' > /opt/local/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/ > base.rb:2183:in `scope'' > /opt/local/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/ > base.rb:1548:in `find_every'' > /opt/local/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/ > base.rb:1588:in `find_one'' > /opt/local/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/ > base.rb:1574:in `find_from_ids'' > /opt/local/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/ > base.rb:616:in `find'' > /opt/local/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/ > associations/belongs_to_association.rb:44:in `find_target'' > /opt/local/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/ > associations/association_proxy.rb:240:in `load_target'' > /opt/local/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/ > associations/association_proxy.rb:112:in `reload'' > /opt/local/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/ > associations.rb:1231:in `user'' > > Need some help for this. Thanks in advance.
Found solution - Use "unloadable" for these classes - http://strd6.com/?p=250 On Jul 20, 11:25 pm, tonymocha <mochat...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> Hi, > > My system has been encounter this problem, and I couldn''t find > solution after debugging. My scenario is stated below: > > class user > has_many :posts > has_many :comments > end > > class post > belongs_to :user > has_many :comments, :as => :commentable > end > > class comment > belongs_to :post > belongs_to :user > end > > For this case, I am trying to retrieve each post''s comment together > with submitter username and I write as below: > > class PostsController<ApplicationController > def show > raise @post.comments.first.user.inspect > end > end > > While the first time I run this script, it works fine. But, after I > hitting a refresh, it hits following problem "can''t dup NilClass". It > is repeats the same for everytime i restart mongrel, working for the > first time and failed for the rest. > > I append the application error log as below: > /opt/local/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/ > base.rb:2189:in `dup'' > /opt/local/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/ > base.rb:2189:in `scoped_methods'' > /opt/local/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/ > base.rb:2193:in `current_scoped_methods'' > /opt/local/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/ > base.rb:2183:in `scope'' > /opt/local/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/ > base.rb:1548:in `find_every'' > /opt/local/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/ > base.rb:1588:in `find_one'' > /opt/local/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/ > base.rb:1574:in `find_from_ids'' > /opt/local/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/ > base.rb:616:in `find'' > /opt/local/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/ > associations/belongs_to_association.rb:44:in `find_target'' > /opt/local/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/ > associations/association_proxy.rb:240:in `load_target'' > /opt/local/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/ > associations/association_proxy.rb:112:in `reload'' > /opt/local/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/ > associations.rb:1231:in `user'' > > Need some help for this. Thanks in advance.