I made sure that my MessageBoards would acts_as_list for Forum:
-----------------------------
class Forum < ActiveRecord::Base
#This is a superset of message boards
has_many :message_boards, :order => ''position'',
:dependent
=> :destroy
...
end
-----------------------------
class MessageBoard < ActiveRecord::Base
#This is a subset of forums
belongs_to :forum
#This causes MessageBoard to act as a list
#it uses order as its index
acts_as_list :scope => :forum_id
...
end
-----------------------------
But for some reason, the unit tests file indicates several failures:
-----------------------------
#in forum_test.rb
def test_board_up
forum = Forum.new(:title => ''basic'')
assert forum.valid?, "forum is invalid, expect more failures"
assert_equal forum.title, ''basic''
board = []
board[0] = forum.message_boards.build(:title => ''#1'',
:description
=> ''one''\
)
board[2] = forum.message_boards.build(:title => ''#3'',
:description
=> ''thre\
e'')
board[1] = forum.message_boards.build(:title => ''#2'',
:description
=> ''two''\
)
forum.message_boards[2].move_lower
forum.save
board_temp = forum.message_boards
board_temp.each{|b| puts b.title}
for num in 0..2
assert_equal board_temp[num].title, board[num].title
assert_equal board_temp[num].description, board[num].description
end
forum.destroy
end
def test_board_down
forum = Forum.new(:title => ''basic'')
assert forum.valid?, "forum is invalid, expect more failures"
assert_equal forum.title, ''basic''
board = []
board[0] = forum.message_boards.build(:title => ''#1'',
:description
=> ''one''\
)
board[2] = forum.message_boards.build(:title => ''#3'',
:description
=> ''thre\
e'')
board[1] = forum.message_boards.build(:title => ''#2'',
:description
=> ''two''\
)
board[2].move_higher
forum.save
board_temp = forum.message_boards
board_temp.each{|b| puts b.title}
for num in 0..2
assert_equal board_temp[num].title, board[num].title
assert_equal board_temp[num].description, board[num].description
end
forum.destroy
end
-----------------------------
Loaded suite forum_test
Started
.#1
#3
#2
F.#1
#3
#2
F......
Finished in 0.597854 seconds.
1) Failure:
test_board_down(ForumTest)
[forum_test.rb:133:in `test_board_down''
forum_test.rb:132:in `each''
forum_test.rb:132:in `test_board_down'']:
<"#3"> expected but was
<"#2">.
2) Failure:
test_board_up(ForumTest)
[forum_test.rb:114:in `test_board_up''
forum_test.rb:113:in `each''
forum_test.rb:113:in `test_board_up'']:
<"#3"> expected but was
<"#2">.
10 tests, 43 assertions, 2 failures, 0 errors
-----------------------------
Why doesn''t move_higher and move_lower affect forum.message_boards in
any way?
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---
I attempted to save forum, move up/down the board, and save the forum again, but that doesn''t seem to work, either... --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
Sorry, I''m really desperate on this. Can someone help me out? --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
Does move_higher save it when it does it? Perhaps try calling save after doing the move_higher. On Jan 9, 2008 7:57 AM, Taro <japtar10101-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> > Sorry, I''m really desperate on this. Can someone help me out? > > >-- Ryan Bigg http://www.frozenplague.net Feel free to add me to MSN and/or GTalk as this email. --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
I''ve heard move_higher and move_lower doesn''t save. Which
isn''t
exactly the problem with this test as I''ll explain later.
I''ve noticed a slight flaw in my test, so revised it to get a similar
results as before. As one might notice in the test code, forum.save
doesn''t seem to have any effect on saving changes of move_higher/
move_lower (or, move_higher/lower does nothing...):
-----------------------------------
def test_board_up
forum = Forum.new(:title => ''basic'')
assert forum.valid?, "forum is invalid, expect more failures"
assert_equal forum.title, ''basic''
board = []
#initialize three boards in this order: #1, #3, #2
#board array holds = [#1, #2, #3]
board[0] = forum.message_boards.build(:title => ''#1'',
:description => ''one'')
board[2] = forum.message_boards.build(:title => ''#3'',
:description => ''three'')
board[1] = forum.message_boards.build(:title => ''#2'',
:description => ''two'')
#save, just in case
forum.save
# move the index #2 lower (so that it''s less than #3)
forum.message_boards[2].move_lower
# and save.
forum.save
board_temp = forum.message_boards
board_temp.each{|b| puts "\ntest_board_up order #{b.title}"}
for num in 0..2
assert_equal board_temp[num].title, board[num].title
assert_equal board_temp[num].description, board[num].description
end
forum.destroy
end
def test_board_down
forum = Forum.new(:title => ''basic'')
assert forum.valid?, "forum is invalid, expect more failures"
assert_equal forum.title, ''basic''
board = []
#initialize three boards in this order: #1, #3, #2
#board array holds = [#1, #2, #3]
board[0] = forum.message_boards.build(:title => ''#1'',
:description => ''one'')
board[2] = forum.message_boards.build(:title => ''#3'',
:description => ''three'')
board[1] = forum.message_boards.build(:title => ''#2'',
:description => ''two'')
#save, just in case
forum.save
# move the index #3 higher (so that it''s greater than #2)
forum.message_boards[1].move_higher
# and save.
forum.save
board_temp = forum.message_boards
board_temp.each{|b| puts "\ntest_board_down order #{b.title}"}
for num in 0..2
assert_equal board_temp[num].title, board[num].title
assert_equal board_temp[num].description, board[num].description
end
forum.destroy
end
-----------------------------------
Loaded suite forum_test
Started
.
test_board_down order #1
test_board_down order #3
test_board_down order #2
F.
test_board_up order #1
test_board_up order #3
test_board_up order #2
F......
Finished in 0.615307 seconds.
1) Failure:
test_board_down(ForumTest)
[forum_test.rb:152:in `test_board_down''
forum_test.rb:151:in `each''
forum_test.rb:151:in `test_board_down'']:
<"#3"> expected but was
<"#2">.
2) Failure:
test_board_up(ForumTest)
[forum_test.rb:125:in `test_board_up''
forum_test.rb:124:in `each''
forum_test.rb:124:in `test_board_up'']:
<"#3"> expected but was
<"#2">.
10 tests, 43 assertions, 2 failures, 0 errors
-----------------------------------
On Jan 8, 5:51 pm, "Ryan Bigg"
<radarliste...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
wrote:> Does move_higher save it when it does it? Perhaps try calling save after
> doing the move_higher.
>
> On Jan 9, 2008 7:57 AM, Taro
<japtar10...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:
>
>
>
> > Sorry, I''m really desperate on this. Can someone help me
out?
>
> --
> Ryan Bigghttp://www.frozenplague.net
> Feel free to add me to MSN and/or GTalk as this email.
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---