Confused by the unit test results.

I'm testing the relation between two of my models: MessageThread
(parent), which has_many Message (children). When I run the following
test, it gives me an error:

I'm testing the relation between two of my models: MessageThread
(parent), which has_many Message (children). When I run the following
test, it gives me an error:
---------------------------------
# test with a valid message
def test_valid_message_new
   thread = MessageThread.new :title => 'awesome thread'
   message = thread.messages.build(:body =>'total awesomeness')
   assert thread.valid?, 'thread not valid'
   assert (thread.messages.size == 1)
   assert_equal 'total awesomeness', message.body
   assert !thread.messages[0].nil?
  #line 182, and the line below, line 183
   assert thread.messages.find(:first, :conditions => {:body =>
'total awesomeness'}), 'Cannot find message'
end

---------------------------------
Loaded suite message_thread_test
Started
.............F
Finished in 0.285501 seconds.

1) Failure:
test_valid_message_new(MessageThreadTest) [message_thread_test.rb:
183]:
Cannot find message.
<nil> is not true.
---------------------------------
Why doesn't method find() find anything? Is the :condition parameter
incorrect? I tried saving message, but it still didn't find the
message I was looking for. Is the find method deprecated?

Neither of those objects have been saved, so there is nothing to find.
you would have to save both thread & message.

Fred

Frederick Cheung wrote:

Ahhh..I have to save the thread....I see. Thank you.

OK, new problem:
This time, I'm using MessageBoard (child) to acts_as_list for Forum
(parent). The models looks as such:

1) Error:
test_title_overlap(MessageBoardTest):
ActiveRecord::StatementInvalid: Mysql::Error: #42S22Unknown column
'position' in 'order clause': SELECT * FROM message_boards WHERE
(forum_id = 2) ORDER BY position DESC LIMIT 1
....
-----------------------------
Does the column name HAVE to be "position"?

No: use the :column option to acts_as_list

Fred