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?