Most times I look up a list of books I want to know a page reference for each one, so the views that display booklists expect an array of two-element arrays, constructed via a method in the model like so: (class Category) def book @book = Array.new self.bookshelves.each { |x| @book << [x.book, x.pages] } return @book end When I get the list of all books that a user has listed, I have no page numbers in that table, nor do I want any. I tried to fill the second slot with nils or empty strings, since that what x.pages would be for a book with no page reference anyway. (class User) def book @books = [] self.books.each { |b| @books << [b, nil] } return @books end But when I call that method in my controller, when ''user'' @books = User.find(params[:id]).book I get this error: ActiveRecord::AssociationTypeMismatch in View#bookslist Book expected, got NilClass RAILS_ROOT: /Volumes/TRAVELDRIVE/sandcastle/script/../config/.. Application Trace | Framework Trace | Full Trace #{RAILS_ROOT}/vendor/rails/activerecord/lib/active_record/associations/association_proxy.rb:115:in `raise_on_type_mismatch'' #{RAILS_ROOT}/vendor/rails/activerecord/lib/active_record/associations/association_collection.rb:24:in `<<'' #{RAILS_ROOT}/vendor/rails/activerecord/lib/active_record/associations/association_collection.rb:23:in `each'' #{RAILS_ROOT}/vendor/rails/activerecord/lib/active_record/associations/association_collection.rb:23:in `<<'' #{RAILS_ROOT}/vendor/rails/activerecord/lib/active_record/associations/association_collection.rb:22:in `transaction'' #{RAILS_ROOT}/vendor/rails/activerecord/lib/active_record/transactions.rb:91:in `transaction'' #{RAILS_ROOT}/vendor/rails/activerecord/lib/active_record/transactions.rb:118:in `transaction'' #{RAILS_ROOT}/vendor/rails/activerecord/lib/active_record/associations/association_collection.rb:22:in `<<'' #{RAILS_ROOT}/app/models/user.rb:106:in `book'' #{RAILS_ROOT}/app/models/user.rb:106:in `each'' I changed the nil in User.book to '''', and it said "Book expected, got String", so it''s clear that it is referring to the second argument there. But I don''t even see how it knows to ''expect'' a book from that context. If I change User.book to put a book in the second array slot, like so: self.books.each { |b| @books << [b, b] } then WEBrick starts churning up as much of my cpu as it can get (60-70%), and mysqld also gets quite a workout (3% of cpu). My suspicion is that I''ve once again run afoul of some reserved words, because equivalent code seems to work elsewhere. -Mike -- Posted via http://www.ruby-forum.com/.