So, I'm at a loss trying to figure out where I screwed something up here.

I've got (what I think should be) a fairly straight-forward record
setup, but when I try to create/save a BookEdition record, I get the
following error:  NameError: undefined local variable or method
`autosave_associated_records_for_book_editions_users'

I'm actually getting two slightly different errors, but with almost
the exact same output:
----------------------------------------------------------------------
1) Error:
test_create_valid_book_edition(BookEditionTest):
NameError: undefined local variable or method
`autosave_associated_records_for_book_editions_users' for
#<ActiveSupport::Callbacks::Callback:0xb6e86b40>
/test/unit/book_edition_test.rb:11:in `test_create_valid_book_edition'


2) Error:
test_relates_to_book_editions_and_amazon_images(BookEditionsImageTest):
NameError: undefined local variable or method
`validate_associated_records_for_book' for
#<ActiveSupport::Callbacks::Callback:0xb6e88b70>
vendor/gems/notahat-machinist-1.0.3/lib/machinist/active_record.rb:54:in `make'
/test/unit/book_editions_image_test.rb:5:in
`test_relates_to_book_editions_and_amazon_images'
----------------------------------------------------------------------

The full project (with the failures) is up on GitHub (
http://github.com/jhelwig/kamitsukai/tree/wip ), in case I miss
something that  would help in tracking this down.

Here are the two unit tests where I'm seeing this kind of error crop up:

test/units/book_edition_test.rb
----------------------------------------------------------------------
require 'test_helper'

class BookEditionTest < ActiveSupport::TestCase
  test "create valid book edition" do
    b = Book.make
    e = BookEdition.new(
      :book => b
    )

    assert_valid e
    assert e.save
    assert_equal e.book(true), b
  end

  test "create book edition without associated book" do
    e = BookEdition.new
    assert !e.valid?
  end
end
----------------------------------------------------------------------

test/units/book_editions_image_test.rb
----------------------------------------------------------------------
require 'test_helper'

class BookEditionsImageTest < ActiveSupport::TestCase
  test "relates to book editions and amazon images" do
    edition = BookEdition.make
    image   = AmazonImage.make

    edition_image = BookEditionsImage.new(
      :amazon_image => image,
      :book_edition => edition
    )

    assert_valid edition_image
    assert edition_image.save
  end
end
----------------------------------------------------------------------

assert_valid is defined as:
----------------------------------------------------------------------
def assert_valid(record)
  assert record.valid?, record.errors.full_messages.join("\n")
end
----------------------------------------------------------------------


Here are the associated models:

app/models/book_edition.rb
----------------------------------------------------------------------
class BookEdition < ActiveRecord::Base
  belongs_to :book
  has_many :book_editions_users
  has_many :users,
    :through => :book_editions_users
  has_many :book_editions_images
  has_many :images,
    :through => :book_editions_images,
    :source  => :amazon_image

  def validate
    errors.add_on_empty %w( book )
  end

  def find_or_create_by_isbn(isbn)
  end
end
----------------------------------------------------------------------

app/models/book.rb
----------------------------------------------------------------------
class Book < ActiveRecord::Base
  validates_presence_of :title

  has_many :editions, :class_name => 'BookEdition'
end
----------------------------------------------------------------------

app/models/book_editions_user.rb
----------------------------------------------------------------------
class BookEditionsUser < ActiveRecord::Base
  belongs_to :user
  belongs_to :book_edition
end
----------------------------------------------------------------------

app/models/user.rb
----------------------------------------------------------------------
class User < ActiveRecord::Base
  acts_as_authentic
  acts_as_authorized_user
  acts_as_authorizable
  attr_accessible :username, :email, :password, :password_confirmation

  has_many :book_editions_users
  has_many :book_editions,
    :through => :book_editions_users,
    :include => :book
  has_and_belongs_to_many :friends,
    :class_name              => 'User',
    :association_foreign_key => 'friend_id'
  has_and_belongs_to_many :friend_of,
    :class_name              => 'User',
    :foreign_key             => 'friend_id',
    :association_foreign_key => 'user_id'

  def validate
    errors.add_on_empty %w( username email )
  end
end
----------------------------------------------------------------------

--~--~---------~--~----~------------~-------~--~----~
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 [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to