My :counter_cache column isn''t working properly.
I wouldn''t normally ask about a relatively trivial issue like this but
I''ve
been banging my head on this for a bit and haven''t gotten anywhere. I
must
be missing something simple. Please take a look:
class Comments < ActiveRecord::Base
belongs_to :test_case, :counter_cache => true
end
class TestCases < ActiveRecord::Base
has_many :test_case_to_users
has_many :comments
has_many :users, :through => :test_case_to_users
named_scope :broken, :conditions => [ "broken = ?", true ]
named_scope :fixed, :conditions => [ "broken = ?", false ]
named_scope :for_user, lambda { |user_id| { :include => :users,
:conditions => ["users.id = ?", user_id ] } }
end
class CreateComments < ActiveRecord::Migration
def self.up
create_table :comments do |t|
t.string :name
t.string :body
t.integer :test_case_id
t.timestamps
end
end
def self.down
drop_table :comments
end
end
class CreateTestCases < ActiveRecord::Migration
def self.up
create_table :test_cases do |t|
t.string :name
t.boolean :broken, :default => true
t.integer :comments_count, :default => 0
t.timestamps
end
end
def self.down
drop_table :test_cases
end
end
I''m getting the following:
NoMethodError: undefined method `find'' for ActiveRecord::TestCase:Class
from
/Library/Ruby/Gems/1.8/gems/activerecord-2.3.2/lib/active_record/associations/belongs_to_association.rb:44:in
`find_target''
from
/Library/Ruby/Gems/1.8/gems/activerecord-2.3.2/lib/active_record/associations/association_proxy.rb:240:in
`load_target''
from
/Library/Ruby/Gems/1.8/gems/activerecord-2.3.2/lib/active_record/associations/association_proxy.rb:112:in
`reload''
from
/Library/Ruby/Gems/1.8/gems/activerecord-2.3.2/lib/active_record/associations.rb:1231:in
`test_case''
from
/Library/Ruby/Gems/1.8/gems/activerecord-2.3.2/lib/active_record/associations.rb:1010:in
`send''
from
/Library/Ruby/Gems/1.8/gems/activerecord-2.3.2/lib/active_record/associations.rb:1010:in
`belongs_to_counter_cache_after_create_for_test_case''
from
/Users/jimenglert/.gem/ruby/1.8/gems/activesupport-2.3.2/lib/active_support/callbacks.rb:178:in
`send''
from
/Users/jimenglert/.gem/ruby/1.8/gems/activesupport-2.3.2/lib/active_support/callbacks.rb:178:in
`evaluate_method''
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
-~----------~----~----~----~------~----~------~--~---
Singularize your model names: Comment & TestCase -e On Sep 10, 8:50 pm, James Englert <englert.ja...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> My :counter_cache column isn''t working properly. > > I wouldn''t normally ask about a relatively trivial issue like this but I''ve > been banging my head on this for a bit and haven''t gotten anywhere. I must > be missing something simple. Please take a look: > > class Comments < ActiveRecord::Base > belongs_to :test_case, :counter_cache => true > end > > class TestCases < ActiveRecord::Base > has_many :test_case_to_users > has_many :comments > has_many :users, :through => :test_case_to_users > > named_scope :broken, :conditions => [ "broken = ?", true ] > named_scope :fixed, :conditions => [ "broken = ?", false ] > named_scope :for_user, lambda { |user_id| { :include => :users, > :conditions => ["users.id = ?", user_id ] } } > end > > class CreateComments < ActiveRecord::Migration > def self.up > create_table :comments do |t| > t.string :name > t.string :body > > t.integer :test_case_id > > t.timestamps > end > end > > def self.down > drop_table :comments > end > end > > class CreateTestCases < ActiveRecord::Migration > def self.up > create_table :test_cases do |t| > t.string :name > t.boolean :broken, :default => true > > t.integer :comments_count, :default => 0 > > t.timestamps > end > end > > def self.down > drop_table :test_cases > end > end > > I''m getting the following: > > NoMethodError: undefined method `find'' for ActiveRecord::TestCase:Class > from > /Library/Ruby/Gems/1.8/gems/activerecord-2.3.2/lib/active_record/associations/belongs_to_association.rb:44:in > `find_target'' > from > /Library/Ruby/Gems/1.8/gems/activerecord-2.3.2/lib/active_record/associations/association_proxy.rb:240:in > `load_target'' > from > /Library/Ruby/Gems/1.8/gems/activerecord-2.3.2/lib/active_record/associations/association_proxy.rb:112:in > `reload'' > from > /Library/Ruby/Gems/1.8/gems/activerecord-2.3.2/lib/active_record/associations.rb:1231:in > `test_case'' > from > /Library/Ruby/Gems/1.8/gems/activerecord-2.3.2/lib/active_record/associations.rb:1010:in > `send'' > from > /Library/Ruby/Gems/1.8/gems/activerecord-2.3.2/lib/active_record/associations.rb:1010:in > `belongs_to_counter_cache_after_create_for_test_case'' > from > /Users/jimenglert/.gem/ruby/1.8/gems/activesupport-2.3.2/lib/active_support/callbacks.rb:178:in > `send'' > from > /Users/jimenglert/.gem/ruby/1.8/gems/activesupport-2.3.2/lib/active_support/callbacks.rb:178:in > `evaluate_method'' > > Any ideas?
Thats actually how I originally had it. I was playing around with
pluralizing them as a last resort and forgot to change them back. I get the
same error with:
class Comment < ActiveRecord::Base
belongs_to :test_case, :counter_cache => true
end
class TestCase < ActiveRecord::Base
has_many :test_case_to_users
has_many :comments
has_many :users, :through => :test_case_to_users
named_scope :broken, :conditions => [ "broken = ?", true ]
named_scope :fixed, :conditions => [ "broken = ?", false ]
named_scope :for_user, lambda { |user_id| { :include => :users,
:conditions => ["users.id = ?", user_id ] } }
end
Sorry for the confusion,
JIm
On Fri, Sep 11, 2009 at 3:12 AM, Eric
<ericghill-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:
>
> Singularize your model names: Comment & TestCase
>
> -e
>
> On Sep 10, 8:50 pm, James Englert
<englert.ja...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:
> > My :counter_cache column isn''t working properly.
> >
> > I wouldn''t normally ask about a relatively trivial issue like
this but
> I''ve
> > been banging my head on this for a bit and haven''t gotten
anywhere. I
> must
> > be missing something simple. Please take a look:
> >
> > class Comments < ActiveRecord::Base
> > belongs_to :test_case, :counter_cache => true
> > end
> >
> > class TestCases < ActiveRecord::Base
> > has_many :test_case_to_users
> > has_many :comments
> > has_many :users, :through => :test_case_to_users
> >
> > named_scope :broken, :conditions => [ "broken = ?",
true ]
> > named_scope :fixed, :conditions => [ "broken = ?",
false ]
> > named_scope :for_user, lambda { |user_id| { :include => :users,
> > :conditions => ["users.id = ?", user_id ] } }
> > end
> >
> > class CreateComments < ActiveRecord::Migration
> > def self.up
> > create_table :comments do |t|
> > t.string :name
> > t.string :body
> >
> > t.integer :test_case_id
> >
> > t.timestamps
> > end
> > end
> >
> > def self.down
> > drop_table :comments
> > end
> > end
> >
> > class CreateTestCases < ActiveRecord::Migration
> > def self.up
> > create_table :test_cases do |t|
> > t.string :name
> > t.boolean :broken, :default => true
> >
> > t.integer :comments_count, :default => 0
> >
> > t.timestamps
> > end
> > end
> >
> > def self.down
> > drop_table :test_cases
> > end
> > end
> >
> > I''m getting the following:
> >
> > NoMethodError: undefined method `find'' for
ActiveRecord::TestCase:Class
> > from
> >
>
/Library/Ruby/Gems/1.8/gems/activerecord-2.3.2/lib/active_record/associations/belongs_to_association.rb:44:in
> > `find_target''
> > from
> >
>
/Library/Ruby/Gems/1.8/gems/activerecord-2.3.2/lib/active_record/associations/association_proxy.rb:240:in
> > `load_target''
> > from
> >
>
/Library/Ruby/Gems/1.8/gems/activerecord-2.3.2/lib/active_record/associations/association_proxy.rb:112:in
> > `reload''
> > from
> >
>
/Library/Ruby/Gems/1.8/gems/activerecord-2.3.2/lib/active_record/associations.rb:1231:in
> > `test_case''
> > from
> >
>
/Library/Ruby/Gems/1.8/gems/activerecord-2.3.2/lib/active_record/associations.rb:1010:in
> > `send''
> > from
> >
>
/Library/Ruby/Gems/1.8/gems/activerecord-2.3.2/lib/active_record/associations.rb:1010:in
> > `belongs_to_counter_cache_after_create_for_test_case''
> > from
> >
>
/Users/jimenglert/.gem/ruby/1.8/gems/activesupport-2.3.2/lib/active_support/callbacks.rb:178:in
> > `send''
> > from
> >
>
/Users/jimenglert/.gem/ruby/1.8/gems/activesupport-2.3.2/lib/active_support/callbacks.rb:178:in
> > `evaluate_method''
> >
> > 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
-~----------~----~----~----~------~----~------~--~---
Figured it out. TestCase is also defined by active record. It will probably be easiest to just rename it from TestCase to something else. On Fri, Sep 11, 2009 at 7:40 AM, James Englert <englert.james-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>wrote:> Thats actually how I originally had it. I was playing around with > pluralizing them as a last resort and forgot to change them back. I get the > same error with: > > class Comment < ActiveRecord::Base > belongs_to :test_case, :counter_cache => true > end > > class TestCase < ActiveRecord::Base > has_many :test_case_to_users > has_many :comments > has_many :users, :through => :test_case_to_users > > named_scope :broken, :conditions => [ "broken = ?", true ] > named_scope :fixed, :conditions => [ "broken = ?", false ] > named_scope :for_user, lambda { |user_id| { :include => :users, > :conditions => ["users.id = ?", user_id ] } } > end > > > Sorry for the confusion, > JIm > > > On Fri, Sep 11, 2009 at 3:12 AM, Eric <ericghill-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote: > >> >> Singularize your model names: Comment & TestCase >> >> -e >> >> On Sep 10, 8:50 pm, James Englert <englert.ja...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote: >> > My :counter_cache column isn''t working properly. >> > >> > I wouldn''t normally ask about a relatively trivial issue like this but >> I''ve >> > been banging my head on this for a bit and haven''t gotten anywhere. I >> must >> > be missing something simple. Please take a look: >> > >> > class Comments < ActiveRecord::Base >> > belongs_to :test_case, :counter_cache => true >> > end >> > >> > class TestCases < ActiveRecord::Base >> > has_many :test_case_to_users >> > has_many :comments >> > has_many :users, :through => :test_case_to_users >> > >> > named_scope :broken, :conditions => [ "broken = ?", true ] >> > named_scope :fixed, :conditions => [ "broken = ?", false ] >> > named_scope :for_user, lambda { |user_id| { :include => :users, >> > :conditions => ["users.id = ?", user_id ] } } >> > end >> > >> > class CreateComments < ActiveRecord::Migration >> > def self.up >> > create_table :comments do |t| >> > t.string :name >> > t.string :body >> > >> > t.integer :test_case_id >> > >> > t.timestamps >> > end >> > end >> > >> > def self.down >> > drop_table :comments >> > end >> > end >> > >> > class CreateTestCases < ActiveRecord::Migration >> > def self.up >> > create_table :test_cases do |t| >> > t.string :name >> > t.boolean :broken, :default => true >> > >> > t.integer :comments_count, :default => 0 >> > >> > t.timestamps >> > end >> > end >> > >> > def self.down >> > drop_table :test_cases >> > end >> > end >> > >> > I''m getting the following: >> > >> > NoMethodError: undefined method `find'' for ActiveRecord::TestCase:Class >> > from >> > >> /Library/Ruby/Gems/1.8/gems/activerecord-2.3.2/lib/active_record/associations/belongs_to_association.rb:44:in >> > `find_target'' >> > from >> > >> /Library/Ruby/Gems/1.8/gems/activerecord-2.3.2/lib/active_record/associations/association_proxy.rb:240:in >> > `load_target'' >> > from >> > >> /Library/Ruby/Gems/1.8/gems/activerecord-2.3.2/lib/active_record/associations/association_proxy.rb:112:in >> > `reload'' >> > from >> > >> /Library/Ruby/Gems/1.8/gems/activerecord-2.3.2/lib/active_record/associations.rb:1231:in >> > `test_case'' >> > from >> > >> /Library/Ruby/Gems/1.8/gems/activerecord-2.3.2/lib/active_record/associations.rb:1010:in >> > `send'' >> > from >> > >> /Library/Ruby/Gems/1.8/gems/activerecord-2.3.2/lib/active_record/associations.rb:1010:in >> > `belongs_to_counter_cache_after_create_for_test_case'' >> > from >> > >> /Users/jimenglert/.gem/ruby/1.8/gems/activesupport-2.3.2/lib/active_support/callbacks.rb:178:in >> > `send'' >> > from >> > >> /Users/jimenglert/.gem/ruby/1.8/gems/activesupport-2.3.2/lib/active_support/callbacks.rb:178:in >> > `evaluate_method'' >> > >> > 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 -~----------~----~----~----~------~----~------~--~---